application request create
This commit is contained in:
parent
6c4cf0861a
commit
e5c58c98aa
2 changed files with 35 additions and 1 deletions
|
|
@ -21,3 +21,21 @@ class PaymentRequestSerializer(serializers.ModelSerializer):
|
|||
|
||||
read_only_fields = ['uuid', 'user','updated_at', 'state', 'created_at']
|
||||
|
||||
class ApplicationPaymentRequestSerializer(serializers.ModelSerializer):
|
||||
# uuid = serializers.UUIDField(required=True)
|
||||
|
||||
class Meta:
|
||||
model = PaymentRequest
|
||||
fields = (
|
||||
'uuid',
|
||||
'user',
|
||||
"created_at",
|
||||
"state",
|
||||
'amount',
|
||||
'updated_at',
|
||||
'callback_url',
|
||||
"phone_number"
|
||||
)
|
||||
|
||||
read_only_fields = ['uuid', 'updated_at', 'state', 'created_at']
|
||||
|
||||
|
|
|
|||
|
|
@ -12,9 +12,10 @@ from rest_framework.views import APIView
|
|||
|
||||
from .forms import PaymentRequestForm
|
||||
from .models import PaymentRequest, GatewayChoise
|
||||
from .serializers import PaymentRequestSerializer
|
||||
from .serializers import PaymentRequestSerializer, ApplicationPaymentRequestSerializer
|
||||
from .constans import StateChoices
|
||||
from ..gooyal_oauth2.utils import get_application
|
||||
from ..users.models import User
|
||||
|
||||
|
||||
class PaymentRequestCreateApiView(generics.CreateAPIView):
|
||||
|
|
@ -31,6 +32,21 @@ class PaymentRequestCreateApiView(generics.CreateAPIView):
|
|||
# TODO: web view
|
||||
# charge_request.charge_wallet_balance()
|
||||
|
||||
class ApplicationPaymentRequestCreateApiView(generics.CreateAPIView):
|
||||
permission_classes = [IsAuthenticatedOrTokenHasScope]
|
||||
serializer_class = ApplicationPaymentRequestSerializer
|
||||
required_scopes = ['ipg.application:request_user_charge'] # TODO: is it good scope?
|
||||
model = PaymentRequest
|
||||
|
||||
def perform_create(self, serializer):
|
||||
user_id = serializer.validated_data['user']
|
||||
user, created = User.objects.get_or_create(id=user_id)
|
||||
application = get_application(self.request)
|
||||
charge_request: PaymentRequest = serializer.save(user=user, application=application)
|
||||
|
||||
# TODO: web view
|
||||
# charge_request.charge_wallet_balance()
|
||||
|
||||
@method_decorator(csrf_exempt, name='dispatch')
|
||||
class PaymentRequestView(UpdateView):
|
||||
template_name = 'pg/payment-request.html'
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue