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",
"last_name",
'name',
'balance',
'avatar',
'iban',
'iban_verified',
@ -39,7 +38,7 @@ class AccountSerializer(serializers.ModelSerializer):
'postal_code',
'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):

View file

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

View file

@ -1,6 +1,7 @@
from django.urls import path
from .views import TransactionList, TransactionDetail, TransactionPay, TransactionReceipt, \
WithdrawVerify, WithdrawSubmit, DepositSubmit, DepositVerify, TransactionListView, TransactionDetailView
WithdrawVerify, WithdrawSubmit, DepositSubmit, DepositVerify, TransactionListView, TransactionDetailView, \
DefaultWalletBalanceView
app_name = "wallet"
@ -8,6 +9,8 @@ urlpatterns = [
path('transactions/', TransactionListView.as_view(), name='transaction_list'),
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/<uuid>', TransactionDetail.as_view(), name='transaction_detail_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.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 .forms import TransactionActionForm
@ -25,6 +25,16 @@ def get_application(request):
application = None
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
# class TransactionList(generics.ListCreateAPIView):
# permission_classes = [IsAuthenticatedOrTokenMatchesOASRequirements]