create get_default_wallet_balance api

This commit is contained in:
mahdavi 2022-09-27 18:03:16 +03:30
parent 583effafe7
commit 366767cd69
4 changed files with 23 additions and 4 deletions

View file

@ -27,7 +27,6 @@ class AccountSerializer(serializers.ModelSerializer):
"first_name", "first_name",
"last_name", "last_name",
'name', 'name',
'balance',
'avatar', 'avatar',
'iban', 'iban',
'iban_verified', 'iban_verified',
@ -39,7 +38,7 @@ class AccountSerializer(serializers.ModelSerializer):
'postal_code', 'postal_code',
'address', 'address',
) )
read_only_fields = ['uuid', 'balance', 'email', 'phone_number', 'iban_verified', 'province_name', 'city_name',] read_only_fields = ['uuid', 'email', 'phone_number', 'iban_verified', 'province_name', 'city_name',]
class RequestOTPSerializer(serializers.ModelSerializer): class RequestOTPSerializer(serializers.ModelSerializer):

View file

@ -5,6 +5,7 @@ from rest_framework.exceptions import APIException
from apps.users.serializers import PublicUserSerializer from apps.users.serializers import PublicUserSerializer
from .models import Transaction from .models import Transaction
from ..users.models import User
class TransactionSerializer(serializers.ModelSerializer): class TransactionSerializer(serializers.ModelSerializer):
@ -99,3 +100,9 @@ class WithdrawSerializer(serializers.ModelSerializer):
raise APIException('duplicate uuid') raise APIException('duplicate uuid')
return transaction return transaction
class WalletSerializer(serializers.ModelSerializer):
class Meta:
model=User
fields = ['balance']

View file

@ -1,6 +1,7 @@
from django.urls import path from django.urls import path
from .views import TransactionList, TransactionDetail, TransactionPay, TransactionReceipt, \ from .views import TransactionList, TransactionDetail, TransactionPay, TransactionReceipt, \
WithdrawVerify, WithdrawSubmit, DepositSubmit, DepositVerify, TransactionListView, TransactionDetailView WithdrawVerify, WithdrawSubmit, DepositSubmit, DepositVerify, TransactionListView, TransactionDetailView, \
DefaultWalletBalanceView
app_name = "wallet" app_name = "wallet"
@ -8,6 +9,8 @@ urlpatterns = [
path('transactions/', TransactionListView.as_view(), name='transaction_list'), path('transactions/', TransactionListView.as_view(), name='transaction_list'),
path('transactions/<pk>', TransactionDetailView.as_view(), name='transaction_detail'), path('transactions/<pk>', TransactionDetailView.as_view(), name='transaction_detail'),
path('api/wallet/default/balance', DefaultWalletBalanceView.as_view(), name='default_wallet_balance_api'),
path('api/transactions/', TransactionList.as_view(), name='transaction_list_api'), path('api/transactions/', TransactionList.as_view(), name='transaction_list_api'),
path('api/transactions/<uuid>', TransactionDetail.as_view(), name='transaction_detail_api'), path('api/transactions/<uuid>', TransactionDetail.as_view(), name='transaction_detail_api'),
path('api/transactions/<uuid>/pay', TransactionPay.as_view(), name='transaction_pay_api'), path('api/transactions/<uuid>/pay', TransactionPay.as_view(), name='transaction_pay_api'),

View file

@ -11,7 +11,7 @@ from rest_framework.response import Response
from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements from apps.gooyal_oauth2.rest_framework import IsAuthenticatedOrTokenMatchesOASRequirements
from apps.wallet.models import Transaction from apps.wallet.models import Transaction
from apps.wallet.serializers import TransactionSerializer, DepositSerializer, WithdrawSerializer from apps.wallet.serializers import TransactionSerializer, DepositSerializer, WithdrawSerializer, WalletSerializer
from .constans import STATE_CHOICES from .constans import STATE_CHOICES
from .forms import TransactionActionForm from .forms import TransactionActionForm
@ -25,6 +25,16 @@ def get_application(request):
application = None application = None
return application return application
class DefaultWalletBalanceView(generics.RetrieveAPIView):
permission_classes = [permissions.IsAuthenticated, IsAuthenticatedOrTokenHasScope]
serializer_class = WalletSerializer
required_scopes = ['wallet.wallet:get_balance']
def get_object(self):
return self.request.user
# TODO: this is user invoice create view # TODO: this is user invoice create view
# class TransactionList(generics.ListCreateAPIView): # class TransactionList(generics.ListCreateAPIView):
# permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements] # permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]