MCPcopy
hub / github.com/jumpserver/jumpserver / put

Method put

apps/labels/api.py:98–120  ·  view source on GitHub ↗
(self, request, *args, **kwargs)

Source from the content-addressed store, hash-verified

96 return invalid_ids
97
98 def put(self, request, *args, **kwargs):
99 label_pk = self.kwargs.get('label')
100 res_type = self.kwargs.get('res_type')
101 content_type = get_object_or_404(ContentType, id=res_type)
102 label = get_object_or_404(Label, pk=label_pk)
103 res_ids = request.data.get('res_ids', [])
104
105 invalid_ids = self.validate_res_ids(content_type, res_ids)
106 if invalid_ids:
107 error = f'{_("Invalid data")}: {", ".join(invalid_ids)}'
108 return Response({
109 "code": 'invalid_data', "detail": error,
110 }, status=status.HTTP_400_BAD_REQUEST)
111
112 LabeledResource.objects \
113 .filter(res_type=content_type, label=label) \
114 .exclude(res_id__in=res_ids).delete()
115 resources = [
116 LabeledResource(res_type=content_type, res_id=res_id, label=label, org_id=current_org.id)
117 for res_id in res_ids
118 ]
119 LabeledResource.objects.bulk_create(resources, ignore_conflicts=True)
120 return Response({"total": len(res_ids)})
121
122
123class LabelViewSet(OrgBulkModelViewSet):

Callers 4

qrcode.jsFile · 0.45
xterm.jsFile · 0.45
uploadMethod · 0.45

Calls 7

validate_res_idsMethod · 0.95
LabeledResourceClass · 0.85
_Function · 0.50
getMethod · 0.45
deleteMethod · 0.45
filterMethod · 0.45
bulk_createMethod · 0.45

Tested by

no test coverage detected