diff --git a/resolvers/rating.py b/resolvers/rating.py index 27110009..f32fb21b 100644 --- a/resolvers/rating.py +++ b/resolvers/rating.py @@ -49,35 +49,33 @@ async def get_my_rates_shouts(_, info, shouts): """ author_dict = info.context.get("author") if info.context else None author_id = author_dict.get("id") if author_dict else None - + if not author_id: return [] with local_session() as session: try: stmt = ( - select( - Reaction - ).where( + select(Reaction) + .where( and_( Reaction.shout.in_(shouts), Reaction.reply_to.is_(None), Reaction.created_by == author_id, Reaction.deleted_at.is_(None), - Reaction.kind.in_([ReactionKind.LIKE.value, ReactionKind.DISLIKE.value]) + Reaction.kind.in_([ReactionKind.LIKE.value, ReactionKind.DISLIKE.value]), ) - ).order_by( - Reaction.shout, - Reaction.created_at.desc() - ).distinct(Reaction.shout) + ) + .order_by(Reaction.shout, Reaction.created_at.desc()) + .distinct(Reaction.shout) ) - + result = session.execute(stmt).all() return [ { "shout_id": row[0].shout, # Получаем shout_id из объекта Reaction - "my_rate": row[0].kind # Получаем kind (my_rate) из объекта Reaction + "my_rate": row[0].kind, # Получаем kind (my_rate) из объекта Reaction } for row in result ] diff --git a/resolvers/reader.py b/resolvers/reader.py index 29fa110b..272db91b 100644 --- a/resolvers/reader.py +++ b/resolvers/reader.py @@ -161,9 +161,9 @@ def query_with_stat(info): ) .filter(Reaction.reply_to.is_(None)) .label("rating"), - func.max(Reaction.created_at).filter(Reaction.kind == ReactionKind.COMMENT.value).label( - "last_commented_at" - ), + func.max(Reaction.created_at) + .filter(Reaction.kind == ReactionKind.COMMENT.value) + .label("last_commented_at"), ) .where(Reaction.deleted_at.is_(None)) .group_by(Reaction.shout) @@ -177,7 +177,7 @@ def query_with_stat(info): "rating", func.coalesce(stats_subquery.c.rating, 0), "last_commented_at", - func.coalesce(stats_subquery.c.last_commented_at, 0) + func.coalesce(stats_subquery.c.last_commented_at, 0), ).label("stat") ) diff --git a/services/auth.py b/services/auth.py index f72ad1d9..2f59a1c3 100644 --- a/services/auth.py +++ b/services/auth.py @@ -1,7 +1,5 @@ from functools import wraps -import httpx - from cache.cache import get_cached_author_by_user_id from resolvers.stat import get_with_stat from services.schema import request_graphql_data diff --git a/services/search.py b/services/search.py index a81d0c6b..9c9b13e9 100644 --- a/services/search.py +++ b/services/search.py @@ -113,7 +113,7 @@ class SearchService: async def info(self): if not SEARCH_ENABLED: return {"status": "disabled"} - + try: return get_indices_stats() except Exception as e: @@ -158,7 +158,7 @@ class SearchService: def index(self, shout): if not SEARCH_ENABLED: return - + if self.client: logger.info(f"Индексируем пост {shout.id}") index_body = { @@ -184,7 +184,7 @@ class SearchService: async def search(self, text, limit, offset): if not SEARCH_ENABLED: return [] - + logger.info(f"Ищем: {text} {offset}+{limit}") search_body = { "query": {"multi_match": {"query": text, "fields": ["title", "lead", "subtitle", "body", "media"]}} @@ -226,5 +226,6 @@ async def search_text(text: str, limit: int = 50, offset: int = 0): payload = await search_service.search(text, limit, offset) return payload + # Проверить что URL корректный -OPENSEARCH_URL = os.getenv('OPENSEARCH_URL', 'rc1a-3n5pi3bhuj9gieel.mdb.yandexcloud.net') +OPENSEARCH_URL = os.getenv("OPENSEARCH_URL", "rc1a-3n5pi3bhuj9gieel.mdb.yandexcloud.net") diff --git a/services/webhook.py b/services/webhook.py index 4189f8ac..1ee8d751 100644 --- a/services/webhook.py +++ b/services/webhook.py @@ -27,9 +27,7 @@ async def check_webhook_existence() -> bool: operation = "GetWebhooks" query_name = "_webhooks" - variables = { - "params": {} - } + variables = {"params": {}} # https://docs.authorizer.dev/core/graphql-api#_webhooks gql = { "query": f"query {operation}($params: GetWebhooksRequest!)" @@ -64,9 +62,7 @@ async def create_webhook_endpoint(): "event_name": "user.login", "endpoint": "https://core.dscrs.site/new-author", "enabled": True, - "headers": { - "Authorization": WEBHOOK_SECRET - }, + "headers": {"Authorization": WEBHOOK_SECRET}, } } gql = { @@ -76,7 +72,6 @@ async def create_webhook_endpoint(): + "}", "variables": variables, "operationName": operation, - } result = await request_graphql_data(gql, headers=headers) logger.info(result) diff --git a/settings.py b/settings.py index 266b22f7..968962e6 100644 --- a/settings.py +++ b/settings.py @@ -15,4 +15,4 @@ DEV_SERVER_PID_FILE_NAME = "dev-server.pid" MODE = "development" if "dev" in sys.argv else "production" ADMIN_SECRET = environ.get("AUTH_SECRET") or "nothing" -WEBHOOK_SECRET = environ.get("WEBHOOK_SECRET") or "nothing-else" \ No newline at end of file +WEBHOOK_SECRET = environ.get("WEBHOOK_SECRET") or "nothing-else"