From 3680bd53b1068d9ccb425d3b953dcdf08640af3f Mon Sep 17 00:00:00 2001 From: Tom Hacohen Date: Mon, 13 Jul 2020 14:26:39 +0300 Subject: [PATCH] Views: change according to DRF best practices. --- django_etebase/views.py | 56 ++++++++++++++++++++--------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/django_etebase/views.py b/django_etebase/views.py index c8a537f..7e8bf98 100644 --- a/django_etebase/views.py +++ b/django_etebase/views.py @@ -153,7 +153,7 @@ class BaseViewSet(viewsets.ModelViewSet): return result, new_stoken, done # Change how our list works by default - def list(self, request, collection_uid=None): + def list(self, request, collection_uid=None, *args, **kwargs): queryset = self.get_queryset() serializer = self.get_serializer(queryset, many=True) @@ -185,11 +185,11 @@ class CollectionViewSet(BaseViewSet): context.update({'request': self.request, 'prefetch': prefetch}) return context - def destroy(self, request, uid=None): + def destroy(self, request, uid=None, *args, **kwargs): # FIXME: implement return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) - def partial_update(self, request, uid=None): + def partial_update(self, request, uid=None, *args, **kwargs): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) def update(self, request, *args, **kwargs): @@ -202,7 +202,7 @@ class CollectionViewSet(BaseViewSet): return Response({}, status=status.HTTP_201_CREATED) - def list(self, request): + def list(self, request, *args, **kwargs): queryset = self.get_queryset() result, new_stoken, done = self.filter_by_stoken_and_limit(request, queryset) @@ -251,21 +251,21 @@ class CollectionItemViewSet(BaseViewSet): context.update({'request': self.request, 'prefetch': prefetch}) return context - def create(self, request, collection_uid=None): + def create(self, request, collection_uid=None, *args, **kwargs): # We create using batch and transaction return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) - def destroy(self, request, collection_uid=None, uid=None): + def destroy(self, request, collection_uid=None, uid=None, *args, **kwargs): # We can't have destroy because we need to get data from the user (in the body) such as hmac. return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) - def update(self, request, collection_uid=None, uid=None): + def update(self, request, collection_uid=None, uid=None, *args, **kwargs): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) - def partial_update(self, request, collection_uid=None, uid=None): + def partial_update(self, request, collection_uid=None, uid=None, *args, **kwargs): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) - def list(self, request, collection_uid=None): + def list(self, request, collection_uid=None, *args, **kwargs): queryset = self.get_queryset() if not self.request.query_params.get('withCollection', False): @@ -283,7 +283,7 @@ class CollectionItemViewSet(BaseViewSet): return Response(ret) @action_decorator(detail=True, methods=['GET']) - def revision(self, request, collection_uid=None, uid=None): + def revision(self, request, collection_uid=None, uid=None, *args, **kwargs): col = get_object_or_404(self.get_collection_queryset(Collection.objects), main_item__uid=collection_uid) item = get_object_or_404(col.items, uid=uid) @@ -316,7 +316,7 @@ class CollectionItemViewSet(BaseViewSet): # FIXME: rename to something consistent with what the clients have - maybe list_updates? @action_decorator(detail=False, methods=['POST']) - def fetch_updates(self, request, collection_uid=None): + def fetch_updates(self, request, collection_uid=None, *args, **kwargs): queryset = self.get_queryset() serializer = CollectionItemBulkGetSerializer(data=request.data, many=True) @@ -349,11 +349,11 @@ class CollectionItemViewSet(BaseViewSet): return Response(ret) @action_decorator(detail=False, methods=['POST']) - def batch(self, request, collection_uid=None): + def batch(self, request, collection_uid=None, *args, **kwargs): return self.transaction(request, collection_uid, validate_etag=False) @action_decorator(detail=False, methods=['POST']) - def transaction(self, request, collection_uid=None, validate_etag=True): + def transaction(self, request, collection_uid=None, validate_etag=True, *args, **kwargs): stoken = request.GET.get('stoken', None) with transaction.atomic(): # We need this for locking on the collection object collection_object = get_object_or_404( @@ -405,7 +405,7 @@ class CollectionItemChunkViewSet(viewsets.ViewSet): user = self.request.user return queryset.filter(members__user=user) - def create(self, request, collection_uid=None, collection_item_uid=None): + def create(self, request, collection_uid=None, collection_item_uid=None, *args, **kwargs): col = get_object_or_404(self.get_collection_queryset(), main_item__uid=collection_uid) col_it = get_object_or_404(col.items, uid=collection_item_uid) @@ -416,7 +416,7 @@ class CollectionItemChunkViewSet(viewsets.ViewSet): return Response({}, status=status.HTTP_201_CREATED) @action_decorator(detail=True, methods=['GET']) - def download(self, request, collection_uid=None, collection_item_uid=None, uid=None): + def download(self, request, collection_uid=None, collection_item_uid=None, uid=None, *args, **kwargs): import os from django.views.static import serve @@ -461,7 +461,7 @@ class CollectionMemberViewSet(BaseViewSet): def get_stoken_obj_id(self, request): return request.GET.get('iterator', None) - def list(self, request, collection_uid=None): + def list(self, request, collection_uid=None, *args, **kwargs): queryset = self.get_queryset().order_by('id') result, new_stoken, done = self.filter_by_stoken_and_limit(request, queryset) serializer = self.get_serializer(result, many=True) @@ -474,7 +474,7 @@ class CollectionMemberViewSet(BaseViewSet): return Response(ret) - def create(self, request): + def create(self, request, *args, **kwargs): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) # FIXME: block leaving if we are the last admins - should be deleted / assigned in this case depending if there @@ -483,7 +483,7 @@ class CollectionMemberViewSet(BaseViewSet): instance.revoke() @action_decorator(detail=False, methods=['POST'], permission_classes=our_base_permission_classes) - def leave(self, request, collection_uid=None): + def leave(self, request, collection_uid=None, *args, **kwargs): collection_uid = self.kwargs['collection_uid'] col = get_object_or_404(self.get_collection_queryset(Collection.objects), main_item__uid=collection_uid) @@ -499,7 +499,7 @@ class InvitationBaseViewSet(BaseViewSet): lookup_field = 'uid' lookup_url_kwarg = 'invitation_uid' - def list(self, request, collection_uid=None): + def list(self, request, collection_uid=None, *args, **kwargs): limit = int(request.GET.get('limit', 50)) iterator = request.GET.get('iterator', None) @@ -556,7 +556,7 @@ class InvitationOutgoingViewSet(InvitationBaseViewSet): return Response({}, status=status.HTTP_201_CREATED) @action_decorator(detail=False, allowed_methods=['GET'], methods=['GET']) - def fetch_user_profile(self, request): + def fetch_user_profile(self, request, *args, **kwargs): username = request.GET.get('username') kwargs = {'owner__' + User.USERNAME_FIELD: username} user_info = get_object_or_404(UserInfo.objects.all(), **kwargs) @@ -574,7 +574,7 @@ class InvitationIncomingViewSet(InvitationBaseViewSet): return queryset.filter(user=self.request.user) @action_decorator(detail=True, allowed_methods=['POST'], methods=['POST']) - def accept(self, request, invitation_uid=None): + def accept(self, request, invitation_uid=None, *args, **kwargs): invitation = get_object_or_404(self.get_queryset(), uid=invitation_uid) context = self.get_serializer_context() context.update({'invitation': invitation}) @@ -605,11 +605,11 @@ class AuthenticationViewSet(viewsets.ViewSet): 'user': UserSerializer(user).data, } - def list(self, request): + def list(self, request, *args, **kwargs): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) @action_decorator(detail=False, methods=['POST']) - def signup(self, request): + def signup(self, request, *args, **kwargs): serializer = AuthenticationSignupSerializer(data=request.data) serializer.is_valid(raise_exception=True) user = serializer.save() @@ -660,7 +660,7 @@ class AuthenticationViewSet(viewsets.ViewSet): return None @action_decorator(detail=False, methods=['POST']) - def login_challenge(self, request): + def login_challenge(self, request, *args, **kwargs): from datetime import datetime serializer = AuthenticationLoginChallengeSerializer(data=request.data) @@ -686,7 +686,7 @@ class AuthenticationViewSet(viewsets.ViewSet): return Response(ret, status=status.HTTP_200_OK) @action_decorator(detail=False, methods=['POST']) - def login(self, request): + def login(self, request, *args, **kwargs): outer_serializer = AuthenticationLoginSerializer(data=request.data) outer_serializer.is_valid(raise_exception=True) @@ -713,13 +713,13 @@ class AuthenticationViewSet(viewsets.ViewSet): return Response(data, status=status.HTTP_200_OK) @action_decorator(detail=False, methods=['POST'], permission_classes=BaseViewSet.permission_classes) - def logout(self, request): + def logout(self, request, *args, **kwargs): request.auth.delete() user_logged_out.send(sender=request.user.__class__, request=request, user=request.user) return Response(status=status.HTTP_204_NO_CONTENT) @action_decorator(detail=False, methods=['POST'], permission_classes=BaseViewSet.permission_classes) - def change_password(self, request): + def change_password(self, request, *args, **kwargs): outer_serializer = AuthenticationLoginSerializer(data=request.data) outer_serializer.is_valid(raise_exception=True) @@ -746,7 +746,7 @@ class TestAuthenticationViewSet(viewsets.ViewSet): renderer_classes = BaseViewSet.renderer_classes parser_classes = BaseViewSet.parser_classes - def list(self, request): + def list(self, request, *args, **kwargs): return Response(status=status.HTTP_405_METHOD_NOT_ALLOWED) @action_decorator(detail=False, methods=['POST'])