published-filter

This commit is contained in:
2023-11-29 15:11:05 +03:00
parent 4a1d7280fc
commit 28853c3a4b
2 changed files with 6 additions and 18 deletions

View File

@@ -48,21 +48,9 @@ def apply_filters(q, filters, author_id=None):
if filters.get("reacted") and author_id:
q.join(Reaction, Reaction.created_by == author_id)
by_visibility = filters.get("visibility")
if by_visibility:
visibility = {
"public": [
ShoutVisibility.PUBLIC,
],
ShoutVisibility.PUBLIC: [
ShoutVisibility.PUBLIC,
],
"community": [ShoutVisibility.PUBLIC, ShoutVisibility.COMMUNITY],
ShoutVisibility.COMMUNITY: [ShoutVisibility.PUBLIC, ShoutVisibility.COMMUNITY],
"authors": [ShoutVisibility.PUBLIC, ShoutVisibility.COMMUNITY, ShoutVisibility.AUTHORS],
ShoutVisibility.AUTHORS: [ShoutVisibility.PUBLIC, ShoutVisibility.COMMUNITY, ShoutVisibility.AUTHORS],
}
q = q.filter(Shout.visibility.in_(visibility.get(by_visibility) or []))
by_published = filters.get("published")
if by_published:
q = q.filter(Shout.visibility == ShoutVisibility.PUBLIC)
by_layouts = filters.get("layouts")
if by_layouts:
q = q.filter(Shout.layout.in_(by_layouts))
@@ -137,7 +125,7 @@ async def load_shouts_by(_, info, options):
filters: {
layouts: ['audio', 'video', ..],
reacted: True,
visibility: ShoutVisibility.Public,
published: True, // filter published-only
author: 'discours',
topic: 'culture',
after: 1234567 // unixtime