Files
website-v2/users/tasks.py
Lacey Williams Henschel 14f01f5444 🔈 Use structlog
2023-03-02 09:59:46 -08:00

34 lines
907 B
Python

import structlog
from django.apps import apps
from django.contrib.auth import get_user_model
from config.celery import app
from libraries.github import get_user_by_username
logger = structlog.getLogger(__name__)
User = get_user_model()
class UserMissingGithubUsername(Exception):
pass
@app.task
def update_user_github_photo(user_pk):
try:
user = User.objects.get(pk=user_pk)
except User.DoesNotExist:
logger.exception("users_tasks_update_gh_photo_no_user_found", user_pk=user_pk)
raise
if not user.github_username:
logger.info("users_tasks_update_gh_photo_no_github_username", user_pk=user_pk)
raise UserMissingGithubUsername
response = get_user_by_username(user.github_username)
avatar_url = response["avatar_url"]
user.save_image_from_github(avatar_url)
logger.info("users_tasks_update_gh_photo_finished", user_pk=user_pk)