forked from melod1n/fast-messenger
a shit ton features, improvements and fixes in messages history screen and others
This commit is contained in:
@@ -46,8 +46,8 @@ inline fun <T> State<T>.processState(
|
||||
) {
|
||||
when (this) {
|
||||
is State.Error -> {
|
||||
error(this)
|
||||
any()
|
||||
error(this)
|
||||
}
|
||||
|
||||
State.Idle -> idle()
|
||||
@@ -55,8 +55,8 @@ inline fun <T> State<T>.processState(
|
||||
State.Loading -> loading()
|
||||
|
||||
is State.Success -> {
|
||||
success(data)
|
||||
any()
|
||||
success(data)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -56,15 +56,22 @@ interface MessagesRepository {
|
||||
peerId: Int
|
||||
): ApiResult<Int, RestApiErrorDomain>
|
||||
|
||||
suspend fun storeMessages(messages: List<VkMessage>)
|
||||
suspend fun markAsImportant(
|
||||
peerId: Int,
|
||||
messageIds: List<Int>?,
|
||||
conversationMessageIds: List<Int>?,
|
||||
important: Boolean
|
||||
): ApiResult<List<Int>, RestApiErrorDomain>
|
||||
|
||||
// suspend fun markAsImportant(
|
||||
// params: MessagesMarkAsImportantRequest
|
||||
// ): ApiResult<List<Int>, RestApiErrorDomain>
|
||||
//
|
||||
// suspend fun delete(
|
||||
// params: MessagesDeleteRequest
|
||||
// ): ApiResult<Unit, RestApiErrorDomain>
|
||||
suspend fun delete(
|
||||
peerId: Int,
|
||||
messageIds: List<Int>?,
|
||||
conversationMessageIds: List<Int>?,
|
||||
spam: Boolean,
|
||||
deleteForAll: Boolean
|
||||
): ApiResult<List<Any>, RestApiErrorDomain>
|
||||
|
||||
suspend fun storeMessages(messages: List<VkMessage>)
|
||||
//
|
||||
// suspend fun edit(
|
||||
// params: MessagesEditRequest
|
||||
|
||||
+34
-2
@@ -16,13 +16,15 @@ import dev.meloda.fast.model.api.domain.VkAttachmentHistoryMessage
|
||||
import dev.meloda.fast.model.api.domain.VkMessage
|
||||
import dev.meloda.fast.model.api.domain.asEntity
|
||||
import dev.meloda.fast.model.api.requests.MessagesCreateChatRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesDeleteRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesGetByIdRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesGetHistoryAttachmentsRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesGetHistoryRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesMarkAsImportantRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesMarkAsReadRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesPinMessageRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesSendRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesUnPinMessageRequest
|
||||
import dev.meloda.fast.model.api.requests.MessagesUnpinMessageRequest
|
||||
import dev.meloda.fast.network.RestApiErrorDomain
|
||||
import dev.meloda.fast.network.mapApiDefault
|
||||
import dev.meloda.fast.network.mapApiResult
|
||||
@@ -240,10 +242,40 @@ class MessagesRepositoryImpl(
|
||||
override suspend fun unpin(
|
||||
peerId: Int
|
||||
): ApiResult<Int, RestApiErrorDomain> = withContext(Dispatchers.IO) {
|
||||
val requestModel = MessagesUnPinMessageRequest(peerId = peerId)
|
||||
val requestModel = MessagesUnpinMessageRequest(peerId = peerId)
|
||||
messagesService.unpin(requestModel.map).mapApiDefault()
|
||||
}
|
||||
|
||||
override suspend fun markAsImportant(
|
||||
peerId: Int,
|
||||
messageIds: List<Int>?,
|
||||
conversationMessageIds: List<Int>?,
|
||||
important: Boolean
|
||||
): ApiResult<List<Int>, RestApiErrorDomain> = withContext(Dispatchers.IO) {
|
||||
val requestModel = MessagesMarkAsImportantRequest(
|
||||
messagesIds = messageIds.orEmpty(),
|
||||
important = important
|
||||
)
|
||||
messagesService.markAsImportant(requestModel.map).mapApiDefault()
|
||||
}
|
||||
|
||||
override suspend fun delete(
|
||||
peerId: Int,
|
||||
messageIds: List<Int>?,
|
||||
conversationMessageIds: List<Int>?,
|
||||
spam: Boolean,
|
||||
deleteForAll: Boolean
|
||||
): ApiResult<List<Any>, RestApiErrorDomain> = withContext(Dispatchers.IO) {
|
||||
val requestModel = MessagesDeleteRequest(
|
||||
peerId = peerId,
|
||||
messagesIds = messageIds,
|
||||
conversationsMessagesIds = conversationMessageIds,
|
||||
isSpam = spam,
|
||||
deleteForAll = deleteForAll
|
||||
)
|
||||
messagesService.delete(requestModel.map).mapApiDefault()
|
||||
}
|
||||
|
||||
override suspend fun storeMessages(messages: List<VkMessage>) {
|
||||
messageDao.insertAll(messages.map(VkMessage::asEntity))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user