1
0
Fork 0
mirror of https://github.com/anyproto/anytype-kotlin.git synced 2025-06-08 05:47:05 +09:00

DROID-3044 Chats | Enhancement | Basics for chat replies (#1854)

This commit is contained in:
Evgenii Kozlov 2024-11-30 16:22:03 +01:00 committed by GitHub
parent 81394a3589
commit 3994d456d5
Signed by: github
GPG key ID: B5690EEEBB952194
18 changed files with 352 additions and 43 deletions

View file

@ -1038,6 +1038,10 @@ class BlockMiddleware(
return middleware.chatGetMessages(command)
}
override suspend fun getChatMessagesByIds(command: Command.ChatCommand.GetMessagesByIds): List<Chat.Message> {
return middleware.chatGetMessagesByIds(command)
}
override suspend fun subscribeLastChatMessages(
command: Command.ChatCommand.SubscribeLastMessages
): Command.ChatCommand.SubscribeLastMessages.Response {

View file

@ -2744,6 +2744,18 @@ class Middleware @Inject constructor(
return response.messages.map { it.core() }
}
@Throws
fun chatGetMessagesByIds(command: Command.ChatCommand.GetMessagesByIds) : List<Chat.Message> {
val request = Rpc.Chat.GetMessagesByIds.Request(
chatObjectId = command.chat,
messageIds = command.messages
)
logRequestIfDebug(request)
val (response, time) = measureTimedValue { service.chatGetMessagesByIds(request) }
logResponseIfDebug(response, time)
return response.messages.map { it.core() }
}
@Throws
fun chatDeleteMessage(command: Command.ChatCommand.DeleteMessage) {
val request = Rpc.Chat.DeleteMessage.Request(

View file

@ -593,6 +593,7 @@ interface MiddlewareService {
fun chatAddMessage(request: Rpc.Chat.AddMessage.Request): Rpc.Chat.AddMessage.Response
fun chatEditMessage(request: Rpc.Chat.EditMessageContent.Request): Rpc.Chat.EditMessageContent.Response
fun chatGetMessages(request: Rpc.Chat.GetMessages.Request): Rpc.Chat.GetMessages.Response
fun chatGetMessagesByIds(request: Rpc.Chat.GetMessagesByIds.Request): Rpc.Chat.GetMessagesByIds.Response
fun chatDeleteMessage(request: Rpc.Chat.DeleteMessage.Request): Rpc.Chat.DeleteMessage.Response
fun chatSubscribeLastMessages(request: Rpc.Chat.SubscribeLastMessages.Request): Rpc.Chat.SubscribeLastMessages.Response
fun chatToggleMessageReaction(request: Rpc.Chat.ToggleMessageReaction.Request): Rpc.Chat.ToggleMessageReaction.Response

View file

@ -2358,6 +2358,19 @@ class MiddlewareServiceImplementation @Inject constructor(
}
}
override fun chatGetMessagesByIds(request: Rpc.Chat.GetMessagesByIds.Request): Rpc.Chat.GetMessagesByIds.Response {
val encoded = Service.chatGetMessagesByIds(
Rpc.Chat.GetMessagesByIds.Request.ADAPTER.encode(request)
)
val response = Rpc.Chat.GetMessagesByIds.Response.ADAPTER.decode(encoded)
val error = response.error
if (error != null && error.code != Rpc.Chat.GetMessagesByIds.Response.Error.Code.NULL) {
throw Exception(error.description)
} else {
return response
}
}
override fun chatSubscribeLastMessages(request: Rpc.Chat.SubscribeLastMessages.Request): Rpc.Chat.SubscribeLastMessages.Response {
val encoded = Service.chatSubscribeLastMessages(
Rpc.Chat.SubscribeLastMessages.Request.ADAPTER.encode(request)