def update_password(request): user = request.user old_pass = request.data.get('old_password', None) new_pass = request.data.get('new_password', None) if not (old_pass and new_pass): return JsonResponse( { "error": get_error_serialized( 103, "new_password or old_password field is required").data }, status=status.HTTPStatus.BAD_REQUEST) if not User.check_password(user, old_pass): return JsonResponse({"error": get_error_serialized(101).data}, status=HTTPStatus.BAD_REQUEST) user.set_password(new_pass) user.save(update_fields=['password']) return JsonResponse({"message": "password successfuly updated"})
def update_profile(request): user = request.user profile_picture = request.data.get('profile_picture', None) banner_picture = request.data.get('banner_picture', None) new_username = request.data.get('username', None) new_pass = request.data.get('password', None) first_name = request.data.get('first_name', None) last_name = request.data.get('last_name', None) email = request.data.get('email', None) biology = request.data.get('biology', None) if not (profile_picture or banner_picture or new_username or new_pass or first_name or last_name or email or biology): return JsonResponse( { "error": get_error_serialized( 103, 'first_name or last_name or profile_picture or banner_picture or username or password or email or biology field is required' ) }, status=HTTPStatus.BAD_REQUEST) to_return_message = "" if profile_picture is not None: user.profile_picture = profile_picture user.save(update_fields=['profile_picture']) to_return_message += "profile picture updated successfuly" if banner_picture is not None: user.banner_picture = banner_picture user.save(update_fields=['banner_picture']) to_return_message += ", banner picture updated successfuly" # --------- TODO delete old images in media folder ---------- if first_name is not None: user.first_name = first_name user.save(update_fields=['first_name']) to_return_message += f" ,first name successfuly updated to \'{first_name}\'" if last_name is not None: user.last_name = last_name user.save(update_fields=['last_name']) to_return_message += f", last name successfuly updated to \'{last_name}\'" if new_username is not None: if User.objects.filter(username=new_username).exists(): return JsonResponse({"error": get_error_serialized(104).data}, status=HTTPStatus.BAD_REQUEST) user.username = new_username user.save(update_fields=['username']) to_return_message += f" ,username successfuly updated to \'{new_username}\'" if new_pass is not None: if User.check_password(user, new_pass): return JsonResponse({"error": get_error_serialized(113).data}, status=HTTPStatus.BAD_REQUEST) user.set_password(new_pass) user.save(update_fields=['password']) to_return_message += " ,password successfuly updated" if email is not None: user.email = email user.save(update_fields=['email']) to_return_message += f" ,email successfuly updated to {email}" if biology is not None: user.biology = biology user.save(update_fields=['biology']) to_return_message += " ,biology successfuly updated" return JsonResponse({"message": to_return_message})