Changeset View
Changeset View
Standalone View
Standalone View
users/views/webhooks.py
| Show First 20 Lines • Show All 81 Lines • ▼ Show 20 Lines | def handle_user_modified(payload: Dict[Any, Any]) -> None: | ||||
| try: | try: | ||||
| oauth_user_info = bid.get_oauth_user_info(oauth_user_id) | oauth_user_info = bid.get_oauth_user_info(oauth_user_id) | ||||
| except ObjectDoesNotExist: | except ObjectDoesNotExist: | ||||
| logger.warning(f'Cannot update user: no OAuth info found for ID {oauth_user_id}') | logger.warning(f'Cannot update user: no OAuth info found for ID {oauth_user_id}') | ||||
| return | return | ||||
| user = oauth_user_info.user | user = oauth_user_info.user | ||||
| if payload.get('date_deletion_requested'): | |||||
| user.request_deletion(payload['date_deletion_requested']) | |||||
| return | |||||
| try: | try: | ||||
| if payload['email'] != user.email: | if payload['email'] != user.email: | ||||
| user.email = payload['email'] | user.email = payload['email'] | ||||
| user.save(update_fields=['email']) | user.save(update_fields=['email']) | ||||
| except IntegrityError: | except IntegrityError: | ||||
| logger.exception(f'Unable to update email for {user}: duplicate email') | logger.exception(f'Unable to update email for {user}: duplicate email') | ||||
| if payload['full_name'] != user.full_name: | if payload['full_name'] != user.full_name: | ||||
| Show All 15 Lines | |||||