* Cleanup in PaymentMethodAPI
This commit is contained in:
parent
a95ff1d738
commit
85b472ddee
|
|
@ -258,11 +258,9 @@ class AnonymousGlobalSettingsSerializer(GlobalSettingsSerializer):
|
||||||
|
|
||||||
|
|
||||||
class PaymentMethodSerializer(serializers.ModelSerializer):
|
class PaymentMethodSerializer(serializers.ModelSerializer):
|
||||||
type = serializers.CharField(source='slug')
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = PaymentMethod
|
model = PaymentMethod
|
||||||
fields = ('type', 'name', 'requisites', 'cardnumber')
|
fields = ('slug', 'name', 'requisites', 'cardnumber')
|
||||||
|
|
||||||
|
|
||||||
class PromocodeSerializer(serializers.ModelSerializer):
|
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'poizon', views.PoizonAPI, basename='poizon')
|
||||||
router.register(r'promo', views.PromoCodeAPI, basename='promo')
|
router.register(r'promo', views.PromoCodeAPI, basename='promo')
|
||||||
router.register(r'category', views.CategoryAPI, basename='category')
|
router.register(r'category', views.CategoryAPI, basename='category')
|
||||||
|
router.register(r'settings/payment', views.PaymentMethodsAPI, basename='payment')
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
path("payment/", views.PaymentMethodsAPI.as_view()),
|
|
||||||
path("settings/", views.GlobalSettingsAPI.as_view()),
|
path("settings/", views.GlobalSettingsAPI.as_view()),
|
||||||
|
|
||||||
] + router.urls
|
] + router.urls
|
||||||
|
|
|
||||||
|
|
@ -140,32 +140,12 @@ class GlobalSettingsAPI(generics.RetrieveUpdateAPIView):
|
||||||
return GlobalSettings.load()
|
return GlobalSettings.load()
|
||||||
|
|
||||||
|
|
||||||
# TODO: update to GenericViewSet
|
class PaymentMethodsAPI(mixins.ListModelMixin, mixins.UpdateModelMixin, viewsets.GenericViewSet):
|
||||||
class PaymentMethodsAPI(generics.GenericAPIView):
|
|
||||||
serializer_class = PaymentMethodSerializer
|
serializer_class = PaymentMethodSerializer
|
||||||
permission_classes = [IsManager | ReadOnly]
|
permission_classes = [IsManager | ReadOnly]
|
||||||
|
lookup_field = 'slug'
|
||||||
queryset = PaymentMethod.objects.all()
|
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):
|
class PromoCodeAPI(viewsets.ModelViewSet):
|
||||||
serializer_class = PromocodeSerializer
|
serializer_class = PromocodeSerializer
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user