From 161d963d4c58302e50c2c2acd73d77d76cad6a82 Mon Sep 17 00:00:00 2001 From: Ernesto Rico Schmidt <ernesto@helsinki.at> Date: Wed, 11 Sep 2024 17:32:01 -0400 Subject: [PATCH] refactor: extract validate_update_request --- program/views.py | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/program/views.py b/program/views.py index 7b512271..541bd91b 100644 --- a/program/views.py +++ b/program/views.py @@ -1103,18 +1103,22 @@ class APIScheduleViewSet(viewsets.ModelViewSet): return Response(resolution, status=status.HTTP_201_CREATED) + def validate_update_request(self): + """Validate that the request has the change_schedule permission and includes `schedule`.""" + + if not self.request.user.has_perm("program.change_schedule"): + return Response(status=status.HTTP_401_UNAUTHORIZED) + + if "schedule" not in self.request.data: + return Response(status=status.HTTP_400_BAD_REQUEST) + def update(self, request, *args, **kwargs): """ Update a schedule, generate timeslots, test for collisions and resolve them including notes. """ - if not self.request.user.has_perm("program.change_schedule"): - return Response(status=status.HTTP_401_UNAUTHORIZED) - - # Only allow updating when with the `schedule` JSON object - if "schedule" not in request.data: - return Response(status=status.HTTP_400_BAD_REQUEST) + self.validate_update_request() schedule = self.get_object() -- GitLab