This commit is contained in:
2022-12-02 14:06:20 +03:00
parent 50b2ae4154
commit 21bf73d7a0
8 changed files with 25 additions and 20 deletions

View File

@@ -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 {

View File

@@ -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