reactions-for-slugs

This commit is contained in:
tonyrewin 2022-09-01 13:16:22 +03:00
parent 1f40e55f83
commit fe13488584
3 changed files with 22 additions and 7 deletions

View File

@ -25,6 +25,7 @@ class Reaction(Base):
return { return {
"viewed": await ViewedStorage.get_reaction(self.id), "viewed": await ViewedStorage.get_reaction(self.id),
"reacted": len(await ReactedStorage.get_reaction(self.id)), "reacted": len(await ReactedStorage.get_reaction(self.id)),
# TODO: "replied"
"rating": await ReactedStorage.get_reaction_rating(self.id), "rating": await ReactedStorage.get_reaction_rating(self.id),
"commented": len(await ReactedStorage.get_reaction_comments(self.id)) "commented": len(await ReactedStorage.get_reaction_comments(self.id))
} }

View File

@ -116,6 +116,19 @@ async def get_shout_reactions(_, info, slug, page, size):
r.createdBy = await UserStorage.get_user(r.createdBy or 'discours') r.createdBy = await UserStorage.get_user(r.createdBy or 'discours')
return reactions return reactions
@query.field("reactionsForSlugs")
async def get_shout_reactions(_, info, slugs, page, size):
offset = page * size
reactions = []
with local_session() as session:
for slug in slugs:
reactions += session.query(Reaction).\
filter(Reaction.shout == slug).\
limit(size).offset(offset).all()
for r in reactions:
r.createdBy = await UserStorage.get_user(r.createdBy or 'discours')
return reactions
@query.field("reactionsAll") @query.field("reactionsAll")
async def get_all_reactions(_, info, page=1, size=10): async def get_all_reactions(_, info, page=1, size=10):

View File

@ -242,6 +242,7 @@ type Query {
reactionsAll(page: Int!, size: Int!): [Reaction]! reactionsAll(page: Int!, size: Int!): [Reaction]!
reactionsByAuthor(slug: String!, page: Int!, size: Int!): [Reaction]! reactionsByAuthor(slug: String!, page: Int!, size: Int!): [Reaction]!
reactionsByShout(slug: String!, page: Int!, size: Int!): [Reaction]! reactionsByShout(slug: String!, page: Int!, size: Int!): [Reaction]!
reactionsForSlugs(slugs: [String]!, page: Int!, size: Int!): [Reaction]!
# collab # collab
inviteAuthor(slug: String!, author: String!): Result! inviteAuthor(slug: String!, author: String!): Result!