From 197409afada7c98402b876bc66e40154c4cc6197 Mon Sep 17 00:00:00 2001 From: Johan Castiblanco Date: Wed, 10 Jul 2024 16:33:21 -0500 Subject: [PATCH] refactor!: reduce complexity reorder for fix C901 'update_user_data' is too complex (11) --- eox_nelp/user_profile/api/v1/views.py | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/eox_nelp/user_profile/api/v1/views.py b/eox_nelp/user_profile/api/v1/views.py index 1de8ee0b..0da5627d 100644 --- a/eox_nelp/user_profile/api/v1/views.py +++ b/eox_nelp/user_profile/api/v1/views.py @@ -57,23 +57,17 @@ def update_user_data(request): # This extra code block is required since the method update_account_settings just # allows to update fields defined in the AccountUserSerializer and the AccountLegacyProfileSerializer # so some fields like first_name and last_name are not editable in the standad implementation. - extra_account_user_fields = getattr(settings, "EXTRA_ACCOUNT_USER_FIELDS", []) - - if extra_account_user_fields: - for field, value in request.data.items(): - if field in extra_account_user_fields and hasattr(request.user, field): - setattr(request.user, field, value) - - request.user.save() - - # This extra code block is required since the method update_account_settings just - # allows to update fields defined in the AccountUserSerializer and the AccountLegacyProfileSerializer # so some fields related ExtraInfo are not editable in the standad implementation. + + extra_account_user_fields = getattr(settings, "EXTRA_ACCOUNT_USER_FIELDS", []) required_user_extra_info_fields = getattr(settings, 'REQUIRED_USER_EXTRA_INFO_FIELDS', []) - if required_user_extra_info_fields: - for field, value in request.data.items(): - if field in required_user_extra_info_fields: - save_extrainfo_field(request.user, field, value) + + for field, value in request.data.items(): + if field in extra_account_user_fields and hasattr(request.user, field): + setattr(request.user, field, value) + request.user.save() + if field in required_user_extra_info_fields: + save_extrainfo_field(request.user, field, value) except errors.AccountValidationError as err: return Response({"field_errors": err.field_errors}, status=status.HTTP_400_BAD_REQUEST)