from django.contrib.auth.mixins import LoginRequiredMixin from django.http import HttpResponse from django.shortcuts import render from django.urls import reverse from django.views import View from mixins.views import ( ObjectCreate, ObjectDelete, ObjectList, ObjectRead, ObjectUpdate, ) from two_factor.views.mixins import OTPRequiredMixin from core.clients.aggregators.nordigen import NordigenClient from core.clients.platforms.agora import AgoraClient from core.util import logs from core.models import Platform from core.lib.money import money from core.views.helpers import synchronize_async_helper log = logs.get_logger(__name__) class Profit(LoginRequiredMixin, OTPRequiredMixin, ObjectRead): context_object_name_singular = "profit" context_object_name = "profit" page_title = "Profit info (USD)" # detail_template = "partials/profit-info.html" def get_object(self, **kwargs): res = synchronize_async_helper(money.check_all(user=self.request.user, nordigen=NordigenClient, agora=AgoraClient)) print("RES", res) results = { "Bank balance total": res["total_sinks_usd"], "Platform balance total": res["total_usd_agora"], "Open trade value": res["open_trade_value"], "Total": res["total_with_trades"], "Profit": res["total_profit"], "Remaining before withdrawal": res["total_remaining"], "Total (without open trades)": res["total_usd"], "Profit (without open trades)": res["profit"], "Remaining before withdrawal (without open trades)": res["remaining"], "Base balance required": res["total_base_usd"], "Amount above base balance to trigger withdrawal": res["total_withdrawal_limit"], "Withdrawal trigger": res["withdraw_threshold"], } return results