return subscribed communities in user info

This commit is contained in:
knst-kotov 2022-06-12 11:45:08 +03:00
parent 7fd0b7e643
commit f92beaaeeb
3 changed files with 18 additions and 7 deletions

View File

@ -86,3 +86,12 @@ def community_unsubscribe(user, slug):
raise Exception("subscription not exist") raise Exception("subscription not exist")
session.delete(sub) session.delete(sub)
session.commit() session.commit()
def get_subscribed_communities(user_slug):
with local_session() as session:
rows = session.query(Community.slug).\
join(CommunitySubscription).\
where(CommunitySubscription.subscriber == user_slug).\
all()
slugs = [row.slug for row in rows]
return slugs

View File

@ -5,7 +5,7 @@ from orm.base import local_session
from orm.topic import Topic, TopicSubscription from orm.topic import Topic, TopicSubscription
from resolvers.base import mutation, query, subscription from resolvers.base import mutation, query, subscription
from resolvers.topics import topic_subscribe, topic_unsubscribe from resolvers.topics import topic_subscribe, topic_unsubscribe
from resolvers.community import community_subscribe, community_unsubscribe from resolvers.community import community_subscribe, community_unsubscribe, get_subscribed_communities
from auth.authenticate import login_required from auth.authenticate import login_required
from inbox_resolvers.inbox import get_total_unread_messages_for_user from inbox_resolvers.inbox import get_total_unread_messages_for_user
@ -34,7 +34,8 @@ async def get_user_info(slug):
return { return {
"totalUnreadMessages" : await get_total_unread_messages_for_user(slug), "totalUnreadMessages" : await get_total_unread_messages_for_user(slug),
"userSubscribedTopics" : _get_user_subscribed_topic_slugs(slug), "userSubscribedTopics" : _get_user_subscribed_topic_slugs(slug),
"userSubscribedAuthors": _get_user_subscribed_authors(slug) "userSubscribedAuthors" : _get_user_subscribed_authors(slug),
"userSubscribedCommunities": get_subscribed_communities(slug)
} }
@query.field("getCurrentUser") @query.field("getCurrentUser")

View File

@ -9,7 +9,8 @@ type Result {
type CurrentUserInfo { type CurrentUserInfo {
totalUnreadMessages : Int totalUnreadMessages : Int
userSubscribedTopics : [String]! userSubscribedTopics : [String]!
userSubscribedAuthors: [User]! userSubscribedAuthors : [User]!
userSubscribedCommunities : [String]!
} }
type AuthResult { type AuthResult {