trigdep
This commit is contained in:
@@ -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 {
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
Reference in New Issue
Block a user