From 21bf73d7a013d5afb8adc818ffd44a693e0d0822 Mon Sep 17 00:00:00 2001 From: tonyrewin Date: Fri, 2 Dec 2022 14:06:20 +0300 Subject: [PATCH] trigdep --- main.py | 4 +++- requirements.txt | 1 + resolvers/inbox/chats.py | 10 +++++----- resolvers/inbox/load.py | 22 ++++++++++++---------- resolvers/zine/reactions.py | 3 +-- schema.graphql | 2 +- server.py | 2 +- settings.py | 1 + 8 files changed, 25 insertions(+), 20 deletions(-) diff --git a/main.py b/main.py index 5a5b7b92..25841763 100644 --- a/main.py +++ b/main.py @@ -18,7 +18,7 @@ from resolvers.auth import confirm_email_handler from services.main import storages_init from services.stat.viewed import ViewedStorage from services.zine.gittask import GitTask -from settings import DEV_SERVER_STATUS_FILE_NAME +from settings import DEV_SERVER_STATUS_FILE_NAME, SENTRY_ID import_module("resolvers") schema = make_executable_schema(load_schema_from_path("schema.graphql"), resolvers) # type: ignore @@ -37,6 +37,8 @@ async def start_up(): print(views_stat_task) git_task = asyncio.create_task(GitTask.git_task_worker()) print(git_task) + import sentry_sdk + sentry_sdk.init("https://%s@testsentry.discours.io/2" % SENTRY_ID) async def dev_start_up(): diff --git a/requirements.txt b/requirements.txt index 4b36b809..801121e9 100644 --- a/requirements.txt +++ b/requirements.txt @@ -26,3 +26,4 @@ asyncio~=3.4.3 python-dateutil~=2.8.2 beautifulsoup4~=4.11.1 lxml +sentry-sdk>=0.10.2 diff --git a/resolvers/inbox/chats.py b/resolvers/inbox/chats.py index c373c6ca..c158e066 100644 --- a/resolvers/inbox/chats.py +++ b/resolvers/inbox/chats.py @@ -51,20 +51,20 @@ async def update_chat(_, info, chat_new: dict): async def create_chat(_, info, title="", members=[]): auth: AuthCredentials = info.context["request"].auth chat = {} - + print('create_chat members: %r' % members) if auth.user_id not in members: - members.append(auth.user_id) + members.append(int(auth.user_id)) # reuse chat craeted before if exists if len(members) == 2 and title == "": - chats1 = await redis.execute("SMEMBERS", f"chats_by_user/{members[0].slug}") - chats2 = await redis.execute("SMEMBERS", f"chats_by_user/{members[1].slug}") + chats1 = await redis.execute("SMEMBERS", f"chats_by_user/{members[0]}") + chats2 = await redis.execute("SMEMBERS", f"chats_by_user/{members[1]}") chat = None for c in chats1.intersection(chats2): chat = await redis.execute("GET", f"chats/{c.decode('utf-8')}") if chat: chat = json.loads(chat) - if chat.title == "": + if chat['title'] == "": break if chat: return { diff --git a/resolvers/inbox/load.py b/resolvers/inbox/load.py index fa32e4f0..a53e435d 100644 --- a/resolvers/inbox/load.py +++ b/resolvers/inbox/load.py @@ -6,7 +6,7 @@ from auth.credentials import AuthCredentials from base.redis import redis from base.orm import local_session from base.resolvers import query -from base.exceptions import ObjectNotExist, Unauthorized +from base.exceptions import ObjectNotExist from orm.user import User from resolvers.zine.profile import followed_authors from .unread import get_unread_counter @@ -48,15 +48,17 @@ async def load_chats(_, info, limit: int = 50, offset: int = 0): c['unread'] = await get_unread_counter(cid, auth.user_id) with local_session() as session: c['members'] = [] - for userslug in c["users"]: - a = session.query(User).where(User.slug == userslug).first().dict() - c['members'].append({ - "slug": userslug, - "userpic": a["userpic"], - "name": a["name"], - "lastSeen": a["lastSeen"], - }) - chats.append(c) + for uid in c["users"]: + a = session.query(User).where(User.id == uid).first() + if a: + c['members'].append({ + "id": a.id, + "slug": a.slug, + "userpic": a.userpic, + "name": a.name, + "lastSeen": a.lastSeen, + }) + chats.append(c) return { "chats": chats, "error": None diff --git a/resolvers/zine/reactions.py b/resolvers/zine/reactions.py index 527dde9d..7c61035b 100644 --- a/resolvers/zine/reactions.py +++ b/resolvers/zine/reactions.py @@ -256,8 +256,7 @@ async def load_reactions_by(_, _info, by, limit=50, offset=0): q = q.filter(Reaction.createdAt > after) order_way = asc if by.get("sort", "").startswith("-") else desc - # replace "-" -> "" ? - order_field = by.get("sort") or Reaction.createdAt + order_field = by.get("sort", "").replace('-', '') or Reaction.createdAt q = q.group_by( Reaction.id, CreatedByUser.id, ReactedShout.id diff --git a/schema.graphql b/schema.graphql index 034abe07..7d7729ca 100644 --- a/schema.graphql +++ b/schema.graphql @@ -151,7 +151,7 @@ enum FollowingEntity { type Mutation { # inbox - createChat(title: String, members: [String]!): Result! + createChat(title: String, members: [Int]!): Result! updateChat(chat: ChatInput!): Result! deleteChat(chatId: String!): Result! diff --git a/server.py b/server.py index 882ea1aa..a1443810 100644 --- a/server.py +++ b/server.py @@ -79,7 +79,7 @@ if __name__ == "__main__": host="localhost", port=8080, headers=local_headers, - # log_config=LOGGING_CONFIG, + # log_config=log_settings, log_level=None, access_log=False, reload=want_reload diff --git a/settings.py b/settings.py index d6c60a4b..196bc822 100644 --- a/settings.py +++ b/settings.py @@ -28,3 +28,4 @@ SESSION_TOKEN_HEADER = "Authorization" # for local development DEV_SERVER_STATUS_FILE_NAME = 'dev-server-status.txt' +SENTRY_ID = environ.get("SENTRY_ID")