diff --git a/resolvers/author.py b/resolvers/author.py index ef39a8b7..ee1d5138 100644 --- a/resolvers/author.py +++ b/resolvers/author.py @@ -248,7 +248,7 @@ async def get_author_follows( _, _info, slug="", user=None, author_id=None ) -> List[Author]: user_id = user - if author_id or slug: + if not user_id and author_id or slug: with local_session() as session: author = ( session.query(Author) @@ -258,8 +258,9 @@ async def get_author_follows( user_id = author.user if user_id: - follows = await get_follows_by_user_id(user) + follows = await get_follows_by_user_id(user_id) return follows + else: raise ValueError("Author not found") diff --git a/resolvers/follower.py b/resolvers/follower.py index 44b142ac..82252447 100644 --- a/resolvers/follower.py +++ b/resolvers/follower.py @@ -101,13 +101,21 @@ def query_follows(user_id: str): .filter(TopicFollower.topic == Topic.id) ) + shouts_query = ( + session.query(Shout, ShoutReactionsFollower) + .join(ShoutReactionsFollower, ShoutReactionsFollower.follower == author_id) + .filter(ShoutReactionsFollower.shout == Shout.id) + ) + authors = set(session.execute(authors_query).scalars()) topics = set(session.execute(topics_query).scalars()) + shouts = set(session.execute(shouts_query).scalars()) communities = session.query(Community).all() return { "topics": list(topics), "authors": list(authors), + "shouts": list(shouts), "communities": communities, }