Skip to content

Commit 826be84

Browse files
feat: add partial_update method to allow authenticated users to update dataset offset
1 parent 6698162 commit 826be84

File tree

1 file changed

+15
-0
lines changed

1 file changed

+15
-0
lines changed

backend/core/views.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,6 +186,21 @@ class DatasetViewSet(BaseSpatialViewSet):
186186
serializer_class = DatasetSerializer
187187
public_methods = ["GET"]
188188

189+
def partial_update(self, request, *args, **kwargs):
190+
if "offset" in request.data:
191+
# Bypass self.get_object() to skip IsOsmAuthenticated's ownership check
192+
# This allows ANY authenticated user to update the offset ## FIXME : I don't like this at all , for now i am allowing as a temp check later cloning of dataset would be recommended
193+
instance = get_object_or_404(self.get_queryset(), pk=kwargs.get("pk"))
194+
195+
serializer = self.get_serializer(
196+
instance, data={"offset": request.data["offset"]}, partial=True
197+
)
198+
serializer.is_valid(raise_exception=True)
199+
self.perform_update(serializer)
200+
return Response(serializer.data)
201+
202+
return super().partial_update(request, *args, **kwargs)
203+
189204

190205
@method_decorator(
191206
ratelimit(key="user", rate="10/h", method="POST", block=True), name="create"

0 commit comments

Comments
 (0)