Fix Groww funds parsing
This commit is contained in:
parent
28ec6c9a4d
commit
760eb6ea1a
@ -216,22 +216,36 @@ def _normalize_groww_funds(data: dict | None) -> dict:
|
||||
available = payload.get("available") if isinstance(payload.get("available"), dict) else {}
|
||||
equity = payload.get("equity") if isinstance(payload.get("equity"), dict) else {}
|
||||
equity_available = equity.get("available") if isinstance(equity.get("available"), dict) else {}
|
||||
equity_margin = (
|
||||
payload.get("equity_margin_details")
|
||||
if isinstance(payload.get("equity_margin_details"), dict)
|
||||
else {}
|
||||
)
|
||||
|
||||
cash = _first_number(
|
||||
payload.get("clear_cash"),
|
||||
payload.get("cash"),
|
||||
payload.get("available_cash"),
|
||||
payload.get("available_balance"),
|
||||
payload.get("available_margin"),
|
||||
available.get("cash"),
|
||||
available.get("available_cash"),
|
||||
available.get("available_margin"),
|
||||
available.get("balance"),
|
||||
equity.get("cash"),
|
||||
equity.get("available_margin"),
|
||||
equity_available.get("cash"),
|
||||
equity_available.get("live_balance"),
|
||||
equity_margin.get("cnc_balance_available"),
|
||||
equity_margin.get("mis_balance_available"),
|
||||
)
|
||||
net = _first_number(
|
||||
payload.get("net"),
|
||||
payload.get("total"),
|
||||
payload.get("margin_available"),
|
||||
payload.get("available_margin"),
|
||||
payload.get("clear_cash"),
|
||||
payload.get("utilised_margin"),
|
||||
equity.get("net"),
|
||||
cash,
|
||||
)
|
||||
@ -239,20 +253,32 @@ def _normalize_groww_funds(data: dict | None) -> dict:
|
||||
payload.get("withdrawable"),
|
||||
payload.get("available_to_withdraw"),
|
||||
available.get("withdrawable"),
|
||||
equity_margin.get("cnc_balance_available"),
|
||||
payload.get("clear_cash"),
|
||||
cash,
|
||||
)
|
||||
balance = _first_number(
|
||||
payload.get("balance"),
|
||||
payload.get("available_balance"),
|
||||
available.get("balance"),
|
||||
payload.get("clear_cash"),
|
||||
cash,
|
||||
)
|
||||
utilized = _first_number(
|
||||
payload.get("utilized"),
|
||||
payload.get("utilised"),
|
||||
payload.get("utilised_margin"),
|
||||
payload.get("used_margin"),
|
||||
equity_margin.get("utilised_margin"),
|
||||
default=0.0,
|
||||
)
|
||||
|
||||
return {
|
||||
"net": net,
|
||||
"cash": cash,
|
||||
"withdrawable": withdrawable,
|
||||
"balance": balance,
|
||||
"utilized": utilized,
|
||||
"available": {
|
||||
"live_balance": cash,
|
||||
"cash": cash,
|
||||
|
||||
@ -98,7 +98,12 @@ def _first_data(payload: dict | None):
|
||||
if not isinstance(payload, dict):
|
||||
return payload
|
||||
data = payload.get("data")
|
||||
return data if data is not None else payload
|
||||
if data is not None:
|
||||
return data
|
||||
envelope = payload.get("payload")
|
||||
if envelope is not None:
|
||||
return envelope
|
||||
return payload
|
||||
|
||||
|
||||
def _auth_headers(access_token: str) -> dict:
|
||||
|
||||
@ -86,22 +86,35 @@ def _normalize_groww_funds(data: dict | None) -> dict:
|
||||
available = payload.get("available") if isinstance(payload.get("available"), dict) else {}
|
||||
equity = payload.get("equity") if isinstance(payload.get("equity"), dict) else {}
|
||||
equity_available = equity.get("available") if isinstance(equity.get("available"), dict) else {}
|
||||
equity_margin = (
|
||||
payload.get("equity_margin_details")
|
||||
if isinstance(payload.get("equity_margin_details"), dict)
|
||||
else {}
|
||||
)
|
||||
|
||||
cash = _first_numeric(
|
||||
payload.get("clear_cash"),
|
||||
payload.get("cash"),
|
||||
payload.get("available_cash"),
|
||||
payload.get("available_balance"),
|
||||
payload.get("available_margin"),
|
||||
available.get("cash"),
|
||||
available.get("available_cash"),
|
||||
available.get("available_margin"),
|
||||
available.get("balance"),
|
||||
equity.get("cash"),
|
||||
equity.get("available_margin"),
|
||||
equity_available.get("cash"),
|
||||
equity_available.get("live_balance"),
|
||||
equity_margin.get("cnc_balance_available"),
|
||||
equity_margin.get("mis_balance_available"),
|
||||
)
|
||||
net = _first_numeric(
|
||||
payload.get("net"),
|
||||
payload.get("total"),
|
||||
payload.get("margin_available"),
|
||||
payload.get("available_margin"),
|
||||
payload.get("clear_cash"),
|
||||
equity.get("net"),
|
||||
cash,
|
||||
)
|
||||
@ -109,12 +122,15 @@ def _normalize_groww_funds(data: dict | None) -> dict:
|
||||
payload.get("withdrawable"),
|
||||
payload.get("available_to_withdraw"),
|
||||
available.get("withdrawable"),
|
||||
equity_margin.get("cnc_balance_available"),
|
||||
payload.get("clear_cash"),
|
||||
cash,
|
||||
)
|
||||
balance = _first_numeric(
|
||||
payload.get("balance"),
|
||||
payload.get("available_balance"),
|
||||
available.get("balance"),
|
||||
payload.get("clear_cash"),
|
||||
cash,
|
||||
)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user