mirror of
https://github.com/elisiariocouto/leggen.git
synced 2025-12-14 08:32:33 +00:00
chore: Initial version.
This commit is contained in:
47
leggen/commands/balances.py
Normal file
47
leggen/commands/balances.py
Normal file
@@ -0,0 +1,47 @@
|
||||
import click
|
||||
|
||||
from leggen.main import cli
|
||||
from leggen.utils.network import get
|
||||
from leggen.utils.text import datefmt, print_table
|
||||
|
||||
|
||||
@cli.command()
|
||||
@click.pass_context
|
||||
def balances(ctx: click.Context):
|
||||
"""
|
||||
List balances of all connected accounts
|
||||
"""
|
||||
|
||||
res = get(ctx, "/requisitions/")
|
||||
accounts = []
|
||||
for r in res.get("results", []):
|
||||
accounts += r.get("accounts", [])
|
||||
|
||||
all_balances = []
|
||||
for account in accounts:
|
||||
account_ballances = get(ctx, f"/accounts/{account}/balances/").get(
|
||||
"balances", []
|
||||
)
|
||||
for balance in account_ballances:
|
||||
balance_amount = balance["balanceAmount"]
|
||||
amount = round(float(balance_amount["amount"]), 2)
|
||||
symbol = (
|
||||
"€"
|
||||
if balance_amount["currency"] == "EUR"
|
||||
else f" {balance_amount['currency']}"
|
||||
)
|
||||
amount_str = f"{amount}{symbol}"
|
||||
date = (
|
||||
datefmt(balance.get("lastChangeDateTime"))
|
||||
if balance.get("lastChangeDateTime")
|
||||
else ""
|
||||
)
|
||||
all_balances.append(
|
||||
{
|
||||
"Account": account,
|
||||
"Amount": amount_str,
|
||||
"Type": balance["balanceType"],
|
||||
"Last change at": date,
|
||||
}
|
||||
)
|
||||
print_table(all_balances)
|
||||
Reference in New Issue
Block a user