Refactor device blocking logic in DeviceBlockAPIView to utilize Omada BlockDeviceResponse for blocking in omada first
Some checks failed
Build and Push Docker Images / Build and Push Docker Images (push) Failing after 3m42s

This commit is contained in:
2025-06-23 23:41:59 +05:00
parent 570cf80019
commit 39da124214
2 changed files with 39 additions and 11 deletions

View File

@ -127,16 +127,22 @@ class DeviceBlockAPIView(StaffEditorPermissionMixin, generics.UpdateAPIView):
return Response({"message": "Blocked field is required."}, status=400)
if not isinstance(blocked, bool):
return Response({"message": "Blocked field must be a boolean."}, status=400)
instance.blocked = blocked
omada_client = Omada()
omada_client.block_device(
blocked = omada_client.block_device(
instance.mac, operation="block" if blocked else "unblock"
)
instance.save()
serializer = self.get_serializer(instance, data=request.data, partial=False)
serializer.is_valid(raise_exception=True)
self.perform_update(serializer)
return Response(serializer.data)
if blocked.errorCode == 0:
instance.blocked = blocked
instance.save()
serializer = self.get_serializer(instance, data=request.data, partial=False)
serializer.is_valid(raise_exception=True)
self.perform_update(serializer)
return Response(serializer.data)
else:
return Response(
{"message": blocked.msg},
status=status.HTTP_400_BAD_REQUEST,
)
class DeviceDestroyAPIView(StaffEditorPermissionMixin, generics.DestroyAPIView):