diff --git a/apps/wallet/urls.py b/apps/wallet/urls.py index 3e4dfda..dd98add 100644 --- a/apps/wallet/urls.py +++ b/apps/wallet/urls.py @@ -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/', 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//verify', application_views.DepositVerifyAPIView.as_view(), name='application_deposit_verify_api'), diff --git a/apps/wallet/views/application.py b/apps/wallet/views/application.py index 273531e..86a983b 100755 --- a/apps/wallet/views/application.py +++ b/apps/wallet/views/application.py @@ -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