diff --git a/resolvers/zine.py b/resolvers/zine.py index 54f0c2dc..3f9fd29a 100644 --- a/resolvers/zine.py +++ b/resolvers/zine.py @@ -473,3 +473,18 @@ async def shouts_candidates(_, info, size): limit(size) return shouts + +@query.field("shoutsCommentedByUser") +async def shouts_commented_by_user(_, info, slug, page, size): + user = await UserStorage.get_user_by_slug(slug) + if not user: + return {} + + with local_session() as session: + shouts = session.query(Shout).\ + join(Comment).\ + where(Comment.author == user.id).\ + order_by(desc(Comment.createdAt)).\ + limit(size).\ + offset( (page - 1) * size) + return shouts diff --git a/schema.graphql b/schema.graphql index 150f4054..bc394ae9 100644 --- a/schema.graphql +++ b/schema.graphql @@ -140,6 +140,8 @@ type Query { userSubscribers(slug: String!): [User]! userSubscribedTopics(slug: String!): [Topic]! + shoutsCommentedByUser(slug: String!, page: Int!, size: Int!): [Shout]! + # shouts getShoutBySlug(slug: String!): Shout! shoutsByTopic(topic: String!, page: Int!, size: Int!): [Shout]!