filters-fix
All checks were successful
Deploy on push / deploy (push) Successful in 21s

This commit is contained in:
Untone 2024-03-25 20:41:28 +03:00
parent f03a6d0efe
commit 9eb2ad21d0

View File

@ -55,25 +55,26 @@ def filter_my(info, session, q):
def apply_filters(q, filters, author_id=None): def apply_filters(q, filters, author_id=None):
if filters.get('reacted'): if isinstance(filters, dict):
q.join(Reaction, Reaction.created_by == author_id) if filters.get('reacted'):
q.join(Reaction, Reaction.created_by == author_id)
by_featured = filters.get('featured') by_featured = filters.get('featured')
if by_featured: if by_featured:
q = q.filter(Shout.featured_at.is_not(None)) q = q.filter(Shout.featured_at.is_not(None))
by_layouts = filters.get('layouts') by_layouts = filters.get('layouts')
if by_layouts: if by_layouts:
q = q.filter(Shout.layout.in_(by_layouts)) q = q.filter(Shout.layout.in_(by_layouts))
by_author = filters.get('author') by_author = filters.get('author')
if by_author: if by_author:
q = q.filter(Shout.authors.any(slug=by_author)) q = q.filter(Shout.authors.any(slug=by_author))
by_topic = filters.get('topic') by_topic = filters.get('topic')
if by_topic: if by_topic:
q = q.filter(Shout.topics.any(slug=by_topic)) q = q.filter(Shout.topics.any(slug=by_topic))
by_after = filters.get('after') by_after = filters.get('after')
if by_after: if by_after:
ts = int(by_after) ts = int(by_after)
q = q.filter(Shout.created_at > ts) q = q.filter(Shout.created_at > ts)
return q return q
@ -236,7 +237,7 @@ async def load_shouts_feed(_, info, options):
q = add_reaction_stat_columns(q, aliased_reaction) q = add_reaction_stat_columns(q, aliased_reaction)
# filters # filters
filters = options.get('filters') filters = options.get('filters', {})
if filters: if filters:
q, reader_id = filter_my(info, session, q) q, reader_id = filter_my(info, session, q)
q = apply_filters(q, filters, reader_id) q = apply_filters(q, filters, reader_id)