From 487a50b9003b6684e5d398de6e6be05912d87cbf Mon Sep 17 00:00:00 2001 From: Andrey Antukh Date: Wed, 23 Oct 2013 16:38:41 +0200 Subject: [PATCH] Replace AtomicMixin with mixins subclasses. --- greenmine/base/api.py | 45 +++++++++++++++++++++++++------------------ 1 file changed, 26 insertions(+), 19 deletions(-) diff --git a/greenmine/base/api.py b/greenmine/base/api.py index 07e3fc4e..dbbe8cad 100644 --- a/greenmine/base/api.py +++ b/greenmine/base/api.py @@ -10,25 +10,31 @@ from rest_framework.response import Response from .pagination import HeadersPaginationMixin, ConditionalPaginationMixin -class AtomicMixin(object): +class CreateModelMixin(mixins.CreateModelMixin): @transaction.atomic - def post(self, *args, **kwargs): - return super().post(*args, **kwargs) + def create(self, *args, **kwargs): + return super().create(*args, **kwargs) + +class RetrieveModelMixin(mixins.RetrieveModelMixin): @transaction.atomic - def delete(self, *args, **kwargs): - return super().delete(*args, **kwargs) + def retrieve(self, *args, **kwargs): + return super().retrieve(*args, **kwargs) + +class UpdateModelMixin(mixins.UpdateModelMixin): @transaction.atomic - def put(self, *args, **kwargs): - return super().put(*args, **kwargs) + def update(self, *args, **kwargs): + return super().update(*args, **kwargs) + +class ListModelMixin(mixins.ListModelMixin): @transaction.atomic - def patch(self, *args, **kwargs): - return super().patch(*args, **kwargs) + def list(self, *args, **kwargs): + return super().list(*args, **kwargs) -class DestroyModelMixin(object): +class DestroyModelMixin(mixins.DestroyModelMixin): """ Self version of DestroyModelMixin with pre_delete hook method. @@ -37,6 +43,7 @@ class DestroyModelMixin(object): def pre_delete(self, obj): pass + @transaction.atomic def destroy(self, request, *args, **kwargs): obj = self.get_object() self.pre_delete(obj) @@ -72,24 +79,24 @@ class DetailAndListSerializersMixin(object): return super().get_serializer_class() -class ModelCrudViewSet(AtomicMixin, - DetailAndListSerializersMixin, +class ModelCrudViewSet(DetailAndListSerializersMixin, PreconditionMixin, HeadersPaginationMixin, ConditionalPaginationMixin, - mixins.CreateModelMixin, - mixins.RetrieveModelMixin, - mixins.UpdateModelMixin, + CreateModelMixin, + RetrieveModelMixin, + UpdateModelMixin, DestroyModelMixin, - mixins.ListModelMixin, + ListModelMixin, viewsets.GenericViewSet): pass -class ModelListViewSet(AtomicMixin, - DetailAndListSerializersMixin, +class ModelListViewSet(DetailAndListSerializersMixin, PreconditionMixin, HeadersPaginationMixin, ConditionalPaginationMixin, - viewsets.ReadOnlyModelViewSet): + RetrieveModelMixin, + ListModelMixin, + viewsets.GenericViewSet): pass