* Cleanup in PaymentMethodAPI
This commit is contained in:
parent
a95ff1d738
commit
85b472ddee
|
|
@ -258,11 +258,9 @@ class AnonymousGlobalSettingsSerializer(GlobalSettingsSerializer):
|
|||
|
||||
|
||||
class PaymentMethodSerializer(serializers.ModelSerializer):
|
||||
type = serializers.CharField(source='slug')
|
||||
|
||||
class Meta:
|
||||
model = PaymentMethod
|
||||
fields = ('type', 'name', 'requisites', 'cardnumber')
|
||||
fields = ('slug', 'name', 'requisites', 'cardnumber')
|
||||
|
||||
|
||||
class PromocodeSerializer(serializers.ModelSerializer):
|
||||
|
|
|
|||
|
|
@ -13,9 +13,9 @@ router.register(r'gifts', views.GiftAPI, basename='gifts')
|
|||
router.register(r'poizon', views.PoizonAPI, basename='poizon')
|
||||
router.register(r'promo', views.PromoCodeAPI, basename='promo')
|
||||
router.register(r'category', views.CategoryAPI, basename='category')
|
||||
router.register(r'settings/payment', views.PaymentMethodsAPI, basename='payment')
|
||||
|
||||
urlpatterns = [
|
||||
path("payment/", views.PaymentMethodsAPI.as_view()),
|
||||
path("settings/", views.GlobalSettingsAPI.as_view()),
|
||||
|
||||
] + router.urls
|
||||
|
|
|
|||
|
|
@ -140,32 +140,12 @@ class GlobalSettingsAPI(generics.RetrieveUpdateAPIView):
|
|||
return GlobalSettings.load()
|
||||
|
||||
|
||||
# TODO: update to GenericViewSet
|
||||
class PaymentMethodsAPI(generics.GenericAPIView):
|
||||
class PaymentMethodsAPI(mixins.ListModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet):
|
||||
serializer_class = PaymentMethodSerializer
|
||||
permission_classes = [IsManager | ReadOnly]
|
||||
lookup_field = 'slug'
|
||||
queryset = PaymentMethod.objects.all()
|
||||
|
||||
def get(self, request, *args, **kwargs):
|
||||
qs = self.get_queryset()
|
||||
data = {}
|
||||
for obj in qs:
|
||||
data[obj.slug] = self.get_serializer(obj).data
|
||||
|
||||
return Response(data)
|
||||
|
||||
def patch(self, request, *args, **kwargs):
|
||||
data = request.data
|
||||
if 'type' not in data:
|
||||
raise CRMException('type is required')
|
||||
|
||||
instance = get_object_or_404(self.get_queryset(), slug=data['type'])
|
||||
serializer = self.get_serializer(instance, data=data, partial=True)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save()
|
||||
|
||||
return Response(serializer.data)
|
||||
|
||||
|
||||
class PromoCodeAPI(viewsets.ModelViewSet):
|
||||
serializer_class = PromocodeSerializer
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user