published-filter

This commit is contained in:
Untone 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

View File

@ -251,7 +251,7 @@ input ShoutsFilterBy {
author: String
authors: [String]
layouts: [String]
visibility: ShoutVisibility
published: Boolean
after: Int
stat: String
}
@ -260,7 +260,7 @@ input LoadShoutsFilters {
topic: String
author: String
layouts: [String]
visibility: ShoutVisibility
published: Boolean
after: Int
reacted: Boolean
}