add party update api
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -13,6 +13,7 @@ media
|
||||
resources/media/
|
||||
resources/static/
|
||||
.log
|
||||
django.log.*
|
||||
# If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/
|
||||
# in your Git repository. Update and uncomment the following line accordingly.
|
||||
# <django-project-name>/staticfiles/
|
||||
|
||||
@@ -136,4 +136,25 @@ class DeletedPartyListSerializer(serializers.ModelSerializer):
|
||||
return {
|
||||
'id': obj.party.mediator.id,
|
||||
'name': obj.party.mediator.full_name
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class PartyUpdateSerializer(serializers.ModelSerializer):
|
||||
class Meta:
|
||||
model = Party
|
||||
fields = [
|
||||
'mediator', 'delivery_date', 'payment_date',
|
||||
]
|
||||
extra_kwargs = {
|
||||
'mediator': {'required': False},
|
||||
'delivery_date': {'required': False},
|
||||
'payment_date': {'required':False}
|
||||
}
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
with transaction.atomic():
|
||||
instance.mediator = validated_data.get('mediator', instance.mediator)
|
||||
instance.delivery_date = validated_data.get('delivery_date', instance.delivery_date)
|
||||
instance.payment_date = validated_data.get('payment_date', instance.payment_date)
|
||||
instance.save()
|
||||
return instance
|
||||
@@ -32,6 +32,7 @@ urlpatterns = [
|
||||
path('<uuid:id>/', party_views.PartyDetailApiView.as_view()),
|
||||
path('<uuid:party_id>/delete/', party_views.PartyDeleteApiView.as_view()),
|
||||
path('deleted_pary/list/', party_views.DeletedPartyListApiView.as_view()),
|
||||
path('<uuid:id>/update/', party_views.PartyUpdateApiView.as_view()),
|
||||
]
|
||||
)),
|
||||
]
|
||||
@@ -1,3 +1,5 @@
|
||||
from django.shortcuts import get_object_or_404
|
||||
|
||||
from rest_framework import generics, views
|
||||
from rest_framework.response import Response
|
||||
|
||||
@@ -93,4 +95,22 @@ class DeletedPartyListApiView(generics.GenericAPIView):
|
||||
if page is not None:
|
||||
serializer = self.serializer_class(page, many=True)
|
||||
return self.get_paginated_response(serializer.data)
|
||||
return Response(serializer.data, status=200)
|
||||
return Response(serializer.data, status=200)
|
||||
|
||||
|
||||
class PartyUpdateApiView(generics.GenericAPIView):
|
||||
serializer_class = serializers.PartyUpdateSerializer
|
||||
queryset = Party.objects.all()
|
||||
pagination_class = [HasRolePermission]
|
||||
required_permissions = ['party']
|
||||
pagination_class = None
|
||||
|
||||
def patch(self, request, id):
|
||||
party = get_object_or_404(Party, id=id)
|
||||
serializer = self.serializer_class(data=request.data, instance=party, partial=True)
|
||||
if serializer.is_valid(raise_exception=True):
|
||||
serializer.save()
|
||||
return Response({
|
||||
'success': True, 'message': 'update',
|
||||
}, status=200)
|
||||
return Response({'success': False, 'error': serializer.errors}, status=400)
|
||||
Reference in New Issue
Block a user