@@ -336,28 +336,31 @@ def put(self, request: Request, id: str, format=None) -> Response:
336336 if not image :
337337 request .data ["image" ] = None
338338
339- new_hidden_from_ids = set (request .data .get ("hidden_from_users" ))
340- if new_hidden_from_ids is not None and user .id in new_hidden_from_ids :
341- return CustomResponse .bad_request (message = "A user cannot be hidden from themselves." )
342-
343- users = User .objects .filter (id__in = new_hidden_from_ids )
344- if users .count () != len (new_hidden_from_ids ):
345- return CustomResponse .not_found (
346- status_code = 404 ,
347- message = "One of the hidden from users does not exist." ,
348- )
339+ raw_hidden_from = request .data .get ("hidden_from_users" )
340+ new_hidden_from_ids = set (raw_hidden_from ) if raw_hidden_from is not None else None
341+ if new_hidden_from_ids is not None :
342+ if user .id in new_hidden_from_ids :
343+ return CustomResponse .bad_request (message = "A user cannot be hidden from themselves." )
344+ users = User .objects .filter (id__in = new_hidden_from_ids )
345+ if users .count () != len (new_hidden_from_ids ):
346+ return CustomResponse .not_found (
347+ status_code = 404 ,
348+ message = "One of the hidden from users does not exist." ,
349+ )
349350
350351 serializer = self .get_serializer (user , data = request .data , partial = True )
351352 if serializer .is_valid ():
352353 office = get_office_by_id (request .data .get ("location" ))
353- user = serializer .save (
354- team = request .data .get ("team" ),
355- gender = request .data .get ("gender" ),
356- location = office ,
357- joining_at = request .data .get ("joining_at" ),
358- reporting_to = request .data .get ("reporting_to" ),
359- hidden_from = new_hidden_from_ids ,
360- )
354+ save_kwargs = {
355+ "team" : request .data .get ("team" ),
356+ "gender" : request .data .get ("gender" ),
357+ "location" : office ,
358+ "joining_at" : request .data .get ("joining_at" ),
359+ "reporting_to" : request .data .get ("reporting_to" ),
360+ }
361+ if new_hidden_from_ids is not None :
362+ save_kwargs ["hidden_from" ] = new_hidden_from_ids
363+ user = serializer .save (** save_kwargs )
361364
362365 return CustomResponse .success (
363366 data = serializer .data , status_code = 202 , message = "User updated"
0 commit comments