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']
|
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 .forms import PaymentRequestForm
|
||||||
from .models import PaymentRequest, GatewayChoise
|
from .models import PaymentRequest, GatewayChoise
|
||||||
from .serializers import PaymentRequestSerializer
|
from .serializers import PaymentRequestSerializer, ApplicationPaymentRequestSerializer
|
||||||
from .constans import StateChoices
|
from .constans import StateChoices
|
||||||
from ..gooyal_oauth2.utils import get_application
|
from ..gooyal_oauth2.utils import get_application
|
||||||
|
from ..users.models import User
|
||||||
|
|
||||||
|
|
||||||
class PaymentRequestCreateApiView(generics.CreateAPIView):
|
class PaymentRequestCreateApiView(generics.CreateAPIView):
|
||||||
|
|
@ -31,6 +32,21 @@ class PaymentRequestCreateApiView(generics.CreateAPIView):
|
||||||
# TODO: web view
|
# TODO: web view
|
||||||
# charge_request.charge_wallet_balance()
|
# 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')
|
@method_decorator(csrf_exempt, name='dispatch')
|
||||||
class PaymentRequestView(UpdateView):
|
class PaymentRequestView(UpdateView):
|
||||||
template_name = 'pg/payment-request.html'
|
template_name = 'pg/payment-request.html'
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue