fix: Validate input data for account status updates

This commit is contained in:
wangruidong
2025-03-19 14:43:09 +08:00
committed by w940853815
parent e68d5564c6
commit 2a31a7d444
2 changed files with 13 additions and 7 deletions

View File

@@ -90,14 +90,16 @@ class GatheredAccountViewSet(OrgBulkModelViewSet):
@action(methods=["put"], detail=False, url_path="status")
def status(self, request, *args, **kwargs):
ids = request.data.get('ids', [])
new_status = request.data.get("status")
serializer = self.get_serializer(data=request.data)
if not serializer.is_valid():
return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
validated_data = serializer.validated_data
ids = validated_data.get('ids', [])
new_status = validated_data.get('status')
updated_instances = GatheredAccount.objects.filter(id__in=ids).select_related('asset')
if new_status == "confirmed":
GatheredAccount.sync_accounts(updated_instances)
updated_instances.update(present=True)
updated_instances.update(status=new_status)
return Response(status=status.HTTP_200_OK)