MessageRepository

internal interface MessageRepository

Inheritors

Properties

Link copied to clipboard

Functions

Link copied to clipboard
abstract suspend fun broadcastEnvelope(envelope: MessageEnvelope, messageOption: BroadcastMessageOption): Either<CoreFailure, Instant>

Send a Proteus MessageEnvelope.

Link copied to clipboard
abstract suspend fun deleteMessage(messageUuid: String, conversationId: ConversationId): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun getAllAlreadyEndedEphemeralMessages(): Either<CoreFailure, List<Message>>
Link copied to clipboard
abstract suspend fun getAllAssetIdsFromConversationId(conversationId: ConversationId): Either<StorageFailure, List<String>>
Link copied to clipboard
abstract suspend fun getAllPendingEphemeralMessages(): Either<CoreFailure, List<Message>>
Link copied to clipboard
abstract suspend fun getAllPendingMessagesFromUser(senderUserId: UserId): Either<CoreFailure, List<Message>>
Link copied to clipboard
abstract suspend fun getImageAssetMessagesByConversationId(conversationId: ConversationId, limit: Int, offset: Int): List<AssetMessage>
Link copied to clipboard
abstract suspend fun getLastMessagesForConversationIds(conversationIdList: List<ConversationId>): Either<StorageFailure, Map<ConversationId, Message>>
Link copied to clipboard
abstract suspend fun getMessageAssetTransferStatus(messageId: String, conversationId: ConversationId): Either<StorageFailure, AssetTransferStatus>
Link copied to clipboard
abstract suspend fun getMessageById(conversationId: ConversationId, messageUuid: String): Either<StorageFailure, Message>
Link copied to clipboard
abstract fun getMessagesByConversationIdAndVisibility(conversationId: ConversationId, limit: Int, offset: Int, visibility: List<Message.Visibility> = Message.Visibility.entries): Flow<List<Message>>
abstract fun getMessagesByConversationIdAndVisibilityAfterDate(conversationId: ConversationId, date: String, visibility: List<Message.Visibility> = Message.Visibility.entries): Flow<List<Message>>
Link copied to clipboard
abstract suspend fun getNextAudioMessageInConversation(conversationId: ConversationId, messageId: String): Either<CoreFailure, String>
Link copied to clipboard
abstract suspend fun getNotificationMessage(messageSizePerConversation: Int = 10): Either<CoreFailure, List<LocalNotification>>
abstract suspend fun getPendingConfirmationMessagesByConversationAfterDate(conversationId: ConversationId, afterDateTime: Instant, untilDateTime: Instant, visibility: List<Message.Visibility> = Message.Visibility.entries): Either<CoreFailure, List<String>>
abstract suspend fun getReceiptModeFromGroupConversationByQualifiedID(conversationId: ConversationId): Either<CoreFailure, Conversation.ReceiptMode?>
Link copied to clipboard
abstract suspend fun getSearchedConversationMessagePosition(conversationId: ConversationId, messageId: String): Either<StorageFailure, Int>
Link copied to clipboard
abstract suspend fun getSenderNameByMessageId(conversationId: ConversationId, messageId: String): Either<CoreFailure, String>
Link copied to clipboard
abstract suspend fun markMessageAsDeleted(messageUuid: String, conversationId: ConversationId): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun markProteusMessagesAsDecryptionResolved(userId: UserId, clientId: ClientId): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun markSelfDeletionEndDate(conversationId: ConversationId, messageUuid: String, deletionEndDate: Instant): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun moveMessagesToAnotherConversation(originalConversation: ConversationId, targetConversation: ConversationId): Either<StorageFailure, Unit>
Link copied to clipboard
abstract fun observeAssetStatuses(): Flow<Either<StorageFailure, List<AssetTransferStatus>>>
abstract fun observeAssetStatuses(conversationId: ConversationId): Flow<Either<StorageFailure, List<MessageAssetStatus>>>
Link copied to clipboard
abstract fun observeMessageById(conversationId: ConversationId, messageUuid: String): Flow<Either<StorageFailure, Message>>
Link copied to clipboard
abstract fun observeMessageVisibility(messageUuid: String, conversationId: ConversationId): Flow<Either<StorageFailure, MessageEntity.Visibility>>
Link copied to clipboard
abstract suspend fun persistMessage(message: Message.Standalone, updateConversationModifiedDate: Boolean = false): Either<CoreFailure, InsertMessageResult>

this fun should never be used directly, use PersistMessageUseCase() instead

Link copied to clipboard
abstract suspend fun persistNoClientsToDeliverFailure(conversationId: ConversationId, messageUuid: String, usersWithFailedDeliveryList: List<UserId>): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun persistRecipientsDeliveryFailure(conversationId: ConversationId, messageUuid: String, usersWithFailedDeliveryList: List<UserId>): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun persistSystemMessageToAllConversations(message: Message.System): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun promoteMessageToSentUpdatingServerTime(conversationId: ConversationId, messageUuid: String, serverDate: Instant?, millis: Long): Either<CoreFailure, Unit>

updates the message status to MessageEntity.Status.SENT and optionally sets the message creation date to serverDate if not null, also marks other pending messages and adds millis to their date

Link copied to clipboard
abstract suspend fun resetAssetTransferStatus()
Link copied to clipboard
abstract suspend fun searchMessagesByText(conversationId: ConversationId, searchQuery: String, limit: Int, offset: Int): Either<StorageFailure, List<Message.Standalone>>

Search messages in a conversation by text content.

Link copied to clipboard
abstract suspend fun searchMessagesByTextGlobally(searchQuery: String, limit: Int, offset: Int): Either<StorageFailure, List<Message.Standalone>>

Search messages across all conversations by text content.

Link copied to clipboard
abstract suspend fun sendEnvelope(conversationId: ConversationId, envelope: MessageEnvelope, messageTarget: MessageTarget): Either<CoreFailure, MessageSent>

Send a Proteus MessageEnvelope to the given conversationId.

Link copied to clipboard
abstract suspend fun sendMLSMessage(message: MLSMessageApi.Message): Either<CoreFailure, MessageSent>
Link copied to clipboard
abstract suspend fun updateAssetMessageTransferStatus(transferStatus: AssetTransferStatus, conversationId: ConversationId, messageUuid: String): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateAudioMessageNormalizedLoudness(conversationId: ConversationId, messageId: String, normalizedLoudness: ByteArray): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateCompositeMessage(conversationId: ConversationId, messageContent: MessageContent.CompositeEdited, newMessageId: String, editInstant: Instant): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun updateLegalHoldMessageMembers(messageId: String, conversationId: ConversationId, newMembers: List<UserId>): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateLinkPreviewImageLocalPath(conversationId: ConversationId, messageId: String, urlOffset: Int, localPath: String): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateMessagesStatus(messageStatus: MessageEntity.Status, conversationId: ConversationId, messageUuids: List<String>): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateMessagesStatusIfNotRead(messageStatus: MessageEntity.Status, conversationId: ConversationId, messageIds: List<String>): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateMessageStatus(messageStatus: MessageEntity.Status, conversationId: ConversationId, messageUuid: String): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateMultipartMessage(conversationId: ConversationId, messageContent: MessageContent.MultipartEdited, newMessageId: String, editInstant: Instant): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateTextMessage(conversationId: ConversationId, messageId: String, messageContent: MessageContent.Text): Either<CoreFailure, Unit>
abstract suspend fun updateTextMessage(conversationId: ConversationId, messageContent: MessageContent.TextEdited, newMessageId: String, editInstant: Instant): Either<CoreFailure, Unit>