load-reactions-fix
All checks were successful
Deploy to core / deploy (push) Successful in 1m39s

This commit is contained in:
Untone 2024-02-03 01:39:57 +03:00
parent d6151c00c8
commit dea03ffa4c

View File

@ -272,29 +272,35 @@ async def delete_reaction(_, info, reaction_id):
def apply_reaction_filters(by, q): def apply_reaction_filters(by, q):
if by.get('shout'): shout_slug = by.get('shout', None)
q = q.filter(Shout.slug == by['shout']) if shout_slug:
q = q.filter(Shout.slug == shout_slug)
elif by.get('shouts'): elif by.get('shouts'):
q = q.filter(Shout.slug.in_(by['shouts'])) q = q.filter(Shout.slug.in_(by.get('shouts', [])))
if by.get('created_by'): created_by = by.get('created_by', None)
q = q.filter(Author.id == by['created_by']) if created_by:
q = q.filter(Author.id == created_by)
if by.get('topic'): topic = by.get('topic', None)
q = q.filter(Shout.topics.contains(by['topic'])) if topic:
q = q.filter(Shout.topics.contains(topic))
if by.get('comment'): if by.get('comment', False):
q = q.filter(func.length(Reaction.body) > 0) q = q.filter(func.length(str(Reaction.body)) > 0)
# NOTE: not using ElasticSearch here
by_search = by.get('search', '') by_search = by.get('search', '')
if len(by_search) > 2: if len(by_search) > 2:
q = q.filter(Reaction.body.ilike(f'%{by_search}%')) q = q.filter(Reaction.body.ilike(f'%{by_search}%'))
if by.get('after'): after = by.get('after', None)
after = int(by['after']) if after is not None:
try:
after = int(after)
q = q.filter(Reaction.created_at > after) q = q.filter(Reaction.created_at > after)
except ValueError:
pass # Handle invalid 'after' value gracefully
return q return q