user balance for applications

This commit is contained in:
Sayyid Hamid Mahdavi 2025-05-31 19:21:11 +03:30
parent 5edcf1793d
commit 821304f1c8
2 changed files with 19 additions and 0 deletions

View file

@ -27,6 +27,8 @@ user_urlpatterns = [
application_urlpatterns = [
path('api/application/balance', application_views.BalanceAPIView.as_view(), name='application_wallet_balance_api'),
path('api/application/user_balance/<uuid>', application_views.UserBalanceAPIView.as_view(), name='application_user_wallet_balance_api'),
path('api/application/deposit/', application_views.DepositSubmitAPIView.as_view(), name='application_deposit_submit_api'),
path('api/application/deposit/<uuid>/verify', application_views.DepositVerifyAPIView.as_view(), name='application_deposit_verify_api'),

View file

@ -2,8 +2,10 @@ from django.db.models import Q
from oauth2_provider.contrib.rest_framework import TokenHasScope, IsAuthenticatedOrTokenHasScope
from rest_framework import generics, permissions, mixins
from rest_framework.exceptions import APIException
from rest_framework.generics import get_object_or_404
from rest_framework.response import Response
from apps.users.models import User
from apps.wallet.constans import TypeChoices, StateChoices
from apps.wallet.models import Transaction
from apps.wallet.serializers import ApplicationDepositSerializer, ApplicationWithdrawSerializer, \
@ -30,6 +32,21 @@ class BalanceAPIView(generics.RetrieveAPIView):
return get_application(self.request)
class UserBalanceAPIView(generics.RetrieveAPIView):
'''
API for getting specified user or application balance.
'''
permission_classes = [IsAuthenticatedOrTokenHasScope]
serializer_class = ApplicationBalanceSerializer
required_scopes = ['wallet.application:get_user_balance']
def get_object(self):
user_uuid = self.kwargs.get('uuid')
user = get_object_or_404(User.objects.all(), uuid=user_uuid)
return user
class TransactionDetailAPIView(generics.RetrieveAPIView):
permission_classes = [TokenHasScope]
serializer_class = ApplicationTransactionSerializer