From db3617c80d299f1b6971dd50064cd8473e2e45d8 Mon Sep 17 00:00:00 2001 From: tonyrewin Date: Tue, 15 Nov 2022 19:49:38 +0300 Subject: [PATCH] fixed-queries --- resolvers/reactions.py | 6 +++--- resolvers/zine.py | 7 +++++-- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/resolvers/reactions.py b/resolvers/reactions.py index 18d8bcaa..267d40ba 100644 --- a/resolvers/reactions.py +++ b/resolvers/reactions.py @@ -1,5 +1,5 @@ from datetime import datetime, timedelta -from sqlalchemy import and_, desc, select +from sqlalchemy import and_, desc, select, text from sqlalchemy.orm import selectinload from auth.authenticate import login_required @@ -115,14 +115,14 @@ def set_published(session, slug, publisher): s = session.query(Shout).where(Shout.slug == slug).first() s.publishedAt = datetime.now() s.publishedBy = publisher - s.visibility = 'public' + s.visibility = text('public') session.add(s) session.commit() def set_hidden(session, slug): s = session.query(Shout).where(Shout.slug == slug).first() - s.visibility = 'authors' + s.visibility = text('authors') s.publishedAt = None # TODO: discuss s.publishedBy = None # TODO: store changes history in git session.add(s) diff --git a/resolvers/zine.py b/resolvers/zine.py index 5f6bd807..cf935a69 100644 --- a/resolvers/zine.py +++ b/resolvers/zine.py @@ -1,7 +1,7 @@ from datetime import datetime, timedelta from sqlalchemy.orm import selectinload -from sqlalchemy.sql.expression import desc, select +from sqlalchemy.sql.expression import or_, desc, select from auth.authenticate import login_required from base.orm import local_session @@ -50,7 +50,10 @@ async def load_shouts_by(_, info, by, amount=50, offset=0): user = info.context["request"].user q = q.filter(Reaction.createdBy == user.slug) if by.get("visibility"): - q = q.filter(Shout.visibility == by.get("visibility") or "public") + q = q.filter(or_( + Shout.visibility.ilike(f"%{by.get('visibility')}%"), + Shout.visibility.ilike(f"%{'public'}%"), + )) if by.get("layout"): q = q.filter(Shout.layout == by["layout"]) if by.get("author"):