Files
2025-11-07 17:43:37 +01:00

58 lines
1.5 KiB
Python

# thirdparty/trading212/views.py
import os
import base64
import logging
import requests
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework.permissions import IsAuthenticated, AllowAny
from django.conf import settings
from django.core.cache import cache
from drf_spectacular.utils import extend_schema
logger = logging.getLogger(__name__)
api_key = os.getenv("ID_API_KEY_TRADING212")
api_secret = os.getenv("API_KEY_TRADING212")
base_url = "https://live.trading212.com"
class Trading212AccountCashView(APIView):
permission_classes = [AllowAny]
authentication_classes = []
@extend_schema(
tags=["trading212"],
summary="Get Trading212 account cash"
)
def get(self, request):
url = f"{base_url}/api/v0/equity/account/cash"
response = requests.get(url, auth=(api_key, api_secret))
logger.info("Trading212 Account Cash Response:")
logger.info(response)
data = response.json()
return Response(data)
class Trading212SummaryView(APIView):
permission_classes = [AllowAny]
authentication_classes = []
@extend_schema(
tags=["trading212"],
summary="Get Trading212 account summary"
)
def get(self, request):
url = f"{base_url}/api/v0/equity/portfolio"
response = requests.get(url, auth=(api_key, api_secret))
logger.info("Trading212 Account Summary Response:")
logger.info(response)
data = response.json()
return Response(data)