From 08c00d950fdd790d014478929d01d1f099eefb2b Mon Sep 17 00:00:00 2001 From: knst-kotov Date: Wed, 16 Feb 2022 15:00:58 +0300 Subject: [PATCH] add userSubscriptions and userSubscribers --- resolvers/profile.py | 16 ++++++++++++++++ schema.graphql | 2 ++ 2 files changed, 18 insertions(+) diff --git a/resolvers/profile.py b/resolvers/profile.py index 978fe32f..945cb701 100644 --- a/resolvers/profile.py +++ b/resolvers/profile.py @@ -65,6 +65,22 @@ async def user_comments(_, info, slug, page, size): return comments +@query.field("userSubscriptions") +async def user_subscriptions(_, info, slug): + with local_session() as session: + users = session.query(User).\ + join(AuthorSubscription, User.slug == AuthorSubscription.author).\ + where(AuthorSubscription.subscriber == slug) + return users + +@query.field("userSubscribers") +async def user_subscribers(_, info, slug): + with local_session() as session: + users = session.query(User).\ + join(AuthorSubscription, User.slug == AuthorSubscription.subscriber).\ + where(AuthorSubscription.author == slug) + return users + @mutation.field("authorSubscribe") @login_required async def author_subscribe(_, info, slug): diff --git a/schema.graphql b/schema.graphql index 7a8fa441..c436b5af 100644 --- a/schema.graphql +++ b/schema.graphql @@ -169,6 +169,8 @@ type Query { # rateUser(shout: Int): Int! getUserRoles(slug: String!): [Role]! userComments(slug: String!, page: Int!, size: Int!): [Comment]! + userSubscriptions(slug: String!): [User]! + userSubscribers(slug: String!): [User]! # messages enterChat(chatId: String!, size: Int = 50): EnterChatResult!