This commit is contained in:
parent
31a8536d27
commit
f33241b84f
|
@ -26,6 +26,13 @@ input ChatInput {
|
|||
description: String
|
||||
}
|
||||
|
||||
input MessageInput {
|
||||
id: String!
|
||||
chat_id: String!
|
||||
body: String
|
||||
seen: Boolean
|
||||
}
|
||||
|
||||
type ChatResult {
|
||||
error: String
|
||||
chat: Chat
|
||||
|
@ -39,11 +46,11 @@ type ChatResult {
|
|||
type Mutation {
|
||||
# inbox
|
||||
createChat(title: String, members: [Int]!): ChatResult!
|
||||
updateChat(chat_id: ChatInput!): ChatResult!
|
||||
updateChat(chat: ChatInput!): ChatResult!
|
||||
deleteChat(chat_id: String!): ChatResult!
|
||||
|
||||
createMessage(chat_id: String!, body: String!, reply_to: Int): ChatResult!
|
||||
updateMessage(chat_id: String!, message_id: Int!, body: String!): ChatResult!
|
||||
updateMessage(message: MessageInput!): ChatResult!
|
||||
deleteMessage(chat_id: String!, message_id: Int!): ChatResult!
|
||||
markAsRead(chat_id: String!, message_id: Int!): ChatResult!
|
||||
|
||||
|
@ -69,27 +76,25 @@ type Query {
|
|||
}
|
||||
|
||||
type Message {
|
||||
id: Int!
|
||||
author: Int!
|
||||
created_at: Int!
|
||||
chat_id: String!
|
||||
body: String!
|
||||
created_at: Int!
|
||||
id: Int!
|
||||
reply_to: Int
|
||||
updated_at: Int
|
||||
reply_to: Int
|
||||
seen: Boolean
|
||||
}
|
||||
|
||||
type Chat {
|
||||
id: String!
|
||||
created_by: Int! # member_id
|
||||
created_at: Int!
|
||||
created_by: Int!
|
||||
updated_at: Int!
|
||||
title: String
|
||||
description: String
|
||||
users: [Int]
|
||||
members: [ChatMember]
|
||||
admins: [Int]
|
||||
updated_at: Int
|
||||
title: String
|
||||
description: String
|
||||
messages: [Message]
|
||||
unread: Int
|
||||
private: Boolean
|
||||
}
|
||||
|
|
|
@ -78,32 +78,40 @@ async def create_message(_, info, chat_id: str, body: str, reply_to=None):
|
|||
|
||||
@mutation.field("updateMessage")
|
||||
@login_required
|
||||
async def update_message(_, info, chat_id: str, message_id: int, body: str):
|
||||
async def update_message(_, info, message):
|
||||
author_id = info.context["author_id"]
|
||||
chat_id = message.get("chat_id")
|
||||
chat_str = ""
|
||||
if chat_id:
|
||||
chat_str = await redis.execute("GET", f"chats/{chat_id}")
|
||||
if not chat_str:
|
||||
return {"error": "chat not exist"}
|
||||
|
||||
chat_str = await redis.execute("GET", f"chats/{chat_id}")
|
||||
if not chat_str:
|
||||
return {"error": "chat not exist"}
|
||||
message_id = message.get("id")
|
||||
body = message.get("body")
|
||||
|
||||
message = await redis.execute("GET", f"chats/{chat_id}/messages/{message_id}")
|
||||
if not message:
|
||||
return {"error": "message not exist"}
|
||||
if message_id:
|
||||
message = await redis.execute("GET", f"chats/{chat_id}/messages/{message_id}")
|
||||
if not message:
|
||||
return {"error": "message not exist"}
|
||||
|
||||
message = json.loads(message)
|
||||
if message["author"] != author_id:
|
||||
return {"error": "access denied"}
|
||||
message = json.loads(message)
|
||||
if message["author"] != author_id:
|
||||
return {"error": "access denied"}
|
||||
|
||||
message["body"] = body
|
||||
message["updated_at"] = int(datetime.now(tz=timezone.utc).timestamp())
|
||||
if body:
|
||||
message["body"] = body
|
||||
message["updated_at"] = int(datetime.now(tz=timezone.utc).timestamp())
|
||||
|
||||
await redis.execute("SET", f"chats/{chat_id}/messages/{message_id}", json.dumps(message))
|
||||
await redis.execute("SET", f"chats/{chat_id}/messages/{message_id}", json.dumps(message))
|
||||
|
||||
|
||||
# Отправка уведомления
|
||||
message["chat_id"] = chat_id
|
||||
await notify_message(message, "update")
|
||||
# Отправка уведомления
|
||||
message["chat_id"] = chat_id
|
||||
await notify_message(message, "update")
|
||||
|
||||
return {"message": message, "error": None}
|
||||
return { "message": message, "error": None }
|
||||
else:
|
||||
return { "message": message, "error": "cannot update, no message_id" }
|
||||
|
||||
|
||||
@mutation.field("deleteMessage")
|
||||
|
|
Loading…
Reference in New Issue
Block a user