From e6cd0ecadc145f3c345c278260dcaddc1f57d1bc Mon Sep 17 00:00:00 2001 From: Untone Date: Mon, 11 Mar 2024 13:37:35 +0300 Subject: [PATCH] unfollow-fix-2 --- resolvers/follower.py | 7 +++---- services/cache.py | 4 +++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/resolvers/follower.py b/resolvers/follower.py index beadcbe3..9d57e015 100644 --- a/resolvers/follower.py +++ b/resolvers/follower.py @@ -73,7 +73,6 @@ async def follow(_, info, what, slug): @login_required async def unfollow(_, info, what, slug): follows = None - error = '' try: user_id = info.context.get('user_id') if not user_id: @@ -81,6 +80,7 @@ async def unfollow(_, info, what, slug): follower_query = select(Author).filter(Author.user == user_id) [follower] = get_with_stat(follower_query) if follower: + logger.info(f'@{follower.slug} unfollowing') if what == 'AUTHOR': if author_unfollow(follower.id, slug): author_query = select(Author).where(Author.slug == slug) @@ -105,12 +105,11 @@ async def unfollow(_, info, what, slug): community_unfollow(follower.id, slug) elif what == 'REACTIONS': reactions_unfollow(follower.id, slug) + return {'error': "", f'{what.lower()}s': follows} except Exception as e: - error = e import traceback traceback.print_exc() - finally: - return {'error': str(error), f'{what.lower()}s': follows} + return {'error': str(e), f'{what.lower()}s': follows} async def get_follows_by_user_id(user_id: str): diff --git a/services/cache.py b/services/cache.py index 11990439..1cc94d8c 100644 --- a/services/cache.py +++ b/services/cache.py @@ -58,9 +58,11 @@ async def set_follows_authors_cache(follows, author_id: int): async def update_follows_for_author( follower: Author, entity_type: str, entity: dict, is_insert: bool ): + follows = [] redis_key = f'author:{follower.id}:follows-{entity_type}s' follows_str = await redis.execute('GET', redis_key) - follows = json.loads(follows_str) if follows_str else [] + if isinstance(follows_str, str): + follows = json.loads(follows_str) if is_insert: follows.append(entity) else: