ConversationRepository

Properties

Link copied to clipboard

Functions

Link copied to clipboard
abstract suspend fun changeConversationName(conversationId: ConversationId, conversationName: String): Either<CoreFailure, ConversationRenameResponse>
Link copied to clipboard
abstract suspend fun clearContent(conversationId: ConversationId): Either<CoreFailure, Unit>

Deletes all conversation messages

Link copied to clipboard
abstract suspend fun deleteConversationLocally(conversationId: ConversationId): Either<CoreFailure, Boolean>

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

Link copied to clipboard
abstract suspend fun fetchConversation(conversationID: ConversationId): Either<CoreFailure, ConversationResponse>
Link copied to clipboard
abstract suspend fun fetchConversationListDetails(conversationIdList: List<QualifiedID>): Either<CoreFailure, ConversationResponseDTO>
Link copied to clipboard
abstract suspend fun fetchConversations(lastPagingState: String?): Either<CoreFailure, ConversationBatch>
Link copied to clipboard
abstract suspend fun fetchMlsOneToOneConversation(userId: UserId): Either<CoreFailure, ConversationResponse>
Link copied to clipboard
abstract suspend fun getConversationById(conversationId: ConversationId): Either<StorageFailure, Conversation>
Link copied to clipboard
abstract suspend fun getConversationByMLSGroupId(mlsGroupId: GroupID): Either<CoreFailure, Conversation>
Link copied to clipboard
abstract suspend fun getConversationDetails(conversationID: ConversationId): Either<StorageFailure, Conversation>
Link copied to clipboard
abstract suspend fun getConversationIds(type: Conversation.Type, protocol: Conversation.Protocol, teamId: TeamId? = null): Either<StorageFailure, List<QualifiedID>>

Gets conversations based on type and protocol. All Conversation.Type.Group subtypes are treated the same.

Link copied to clipboard
abstract suspend fun getConversationIdsWithoutMetadata(): Either<CoreFailure, List<QualifiedID>>
Link copied to clipboard
abstract suspend fun getConversationLastReadDate(conversationId: ConversationId): Either<StorageFailure, Instant>
Link copied to clipboard
abstract fun getConversationList(): Either<StorageFailure, Flow<List<Conversation>>>
Link copied to clipboard
abstract fun getConversationListWithOtherUserName(): Either<StorageFailure, Flow<List<ConversationWithOtherUserName>>>
Link copied to clipboard
abstract suspend fun getConversationMemberCounts(conversationId: ConversationId): Either<StorageFailure, ConversationMemberCounts>
Link copied to clipboard
abstract suspend fun getConversationMemberRole(conversationId: ConversationId, userId: UserId): Either<StorageFailure, Conversation.Member.Role?>
Link copied to clipboard
abstract suspend fun getConversationMembers(conversationId: ConversationId): Either<StorageFailure, List<UserId>>

Fetches a list of all members' IDs or a given conversation including self user

Link copied to clipboard
abstract suspend fun getConversationProtocolInfo(conversationId: ConversationId): Either<StorageFailure, Conversation.ProtocolInfo>
Link copied to clipboard
abstract suspend fun getConversationRecipients(conversationId: ConversationId): Either<CoreFailure, List<Recipient>>
Link copied to clipboard
abstract suspend fun getConversationRecipientsForCalling(conversationId: ConversationId): Either<CoreFailure, List<Recipient>>
Link copied to clipboard
abstract suspend fun getConversationsByGroupState(groupState: Conversation.ProtocolInfo.MLSCapable.GroupState): Either<StorageFailure, List<Conversation>>
Link copied to clipboard
abstract suspend fun getConversationsByUserId(userId: UserId): Either<CoreFailure, List<Conversation>>
Link copied to clipboard
abstract suspend fun getConversationUnreadEventsCount(conversationId: ConversationId): Either<StorageFailure, Long>
abstract suspend fun getGroupConversationsWithMembersWithBothDomains(firstDomain: String, secondDomain: String): Either<CoreFailure, GroupConversationMembers>
Link copied to clipboard
abstract suspend fun getGroupStatusMembersNamesAndHandles(groupID: GroupID): Either<StorageFailure, EpochChangesData>
Link copied to clipboard
abstract suspend fun getMLSConversationsByDomain(domain: String): Either<CoreFailure, List<Conversation>>
Link copied to clipboard
abstract suspend fun getMLSSelfConversationId(): Either<StorageFailure, ConversationId>
Link copied to clipboard
abstract suspend fun getNonDeletedConversationById(conversationId: ConversationId): Either<StorageFailure, Conversation>
abstract suspend fun getOneOnOneConversationsWithFederatedMembers(domain: String): Either<CoreFailure, OneOnOneMembers>
Link copied to clipboard
abstract suspend fun getOneOnOneConversationsWithOtherUser(otherUserId: UserId, protocol: Conversation.Protocol): Either<StorageFailure, List<ConversationId>>
Link copied to clipboard
abstract suspend fun getProteusSelfConversationId(): Either<StorageFailure, ConversationId>
Link copied to clipboard
abstract suspend fun getRecipientById(conversationId: ConversationId, userIDList: List<UserId>): Either<StorageFailure, List<Recipient>>
abstract suspend fun getTeamConversationIdsReadyToCompleteMigration(teamId: TeamId): Either<StorageFailure, List<QualifiedID>>
Link copied to clipboard
abstract suspend fun insertConversations(conversations: List<Conversation>): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun isCellEnabled(conversationId: ConversationId): Either<StorageFailure, Boolean>
Link copied to clipboard
abstract suspend fun isConversationMemberAdmin(conversationId: ConversationId, userId: UserId): Either<StorageFailure, Boolean>
Link copied to clipboard
abstract suspend fun isInformedAboutDegradedMLSVerification(conversationId: ConversationId): Either<StorageFailure, Boolean>
Link copied to clipboard
abstract suspend fun observeConversationById(conversationId: ConversationId): Flow<Either<StorageFailure, Conversation>>
Link copied to clipboard
abstract suspend fun observeConversationDetailsById(conversationID: ConversationId): Flow<Either<StorageFailure, ConversationDetails>>
Link copied to clipboard
abstract fun observeConversationList(): Flow<List<Conversation>>
Link copied to clipboard
abstract fun observeConversationListDetails(fromArchive: Boolean, conversationFilter: ConversationFilter = ConversationFilter.All): Flow<List<ConversationDetails>>
Link copied to clipboard
abstract fun observeConversationListDetailsWithEvents(fromArchive: Boolean = false, conversationFilter: ConversationFilter = ConversationFilter.All, strictMlsFilter: Boolean = true): Flow<List<ConversationDetailsWithEvents>>
Link copied to clipboard
abstract suspend fun observeConversationMembers(conversationID: ConversationId): Flow<List<Conversation.Member>>
Link copied to clipboard
abstract fun observeDegradedConversationNotified(conversationId: QualifiedID): Flow<Boolean>
Link copied to clipboard
abstract fun observeIsUserMember(conversationId: ConversationId, userId: UserId): Flow<Either<CoreFailure, Boolean>>
Link copied to clipboard
abstract fun observeLegalHoldStatus(conversationId: ConversationId): Flow<Either<StorageFailure, Conversation.LegalHoldStatus>>
Link copied to clipboard
abstract fun observeLegalHoldStatusChangeNotified(conversationId: ConversationId): Flow<Either<StorageFailure, Boolean>>
abstract fun observeOneToOneConversationDetailsWithOtherUser(otherUserId: UserId): Flow<Either<StorageFailure, ConversationDetails.OneOne>>
Link copied to clipboard
abstract fun observeOneToOneConversationWithOtherUser(otherUserId: UserId): Flow<Either<CoreFailure, Conversation>>
Link copied to clipboard
abstract fun observeUnreadArchivedConversationsCount(): Flow<Long>
Link copied to clipboard
abstract suspend fun persistConversations(conversations: List<ConversationEntity>): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun persistIncompleteConversations(conversationsFailed: List<NetworkQualifiedId>): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun persistMembers(members: List<Conversation.Member>, conversationID: ConversationId): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun resetMlsConversation(groupId: GroupID, epoch: ULong): Either<NetworkFailure, Unit>
Link copied to clipboard
abstract suspend fun selectMembersNameAndHandle(conversationId: ConversationId): Either<StorageFailure, Map<UserId, NameAndHandle>>
Link copied to clipboard
abstract suspend fun sendTypingIndicatorStatus(conversationId: ConversationId, typingStatus: Conversation.TypingIndicatorMode): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun setConversationDeletedLocally(conversationId: ConversationId, deletedLocally: Boolean): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun setDegradedConversationNotifiedFlag(conversationId: QualifiedID, value: Boolean): Either<CoreFailure, Unit>
abstract suspend fun setInformedAboutDegradedMLSVerificationFlag(conversationId: ConversationId, isInformed: Boolean): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun setLegalHoldStatusChangeNotified(conversationId: ConversationId): Either<CoreFailure, Boolean>
Link copied to clipboard
abstract suspend fun updateAccessInfo(conversationID: ConversationId, access: Set<Conversation.Access>, accessRole: Set<Conversation.AccessRole>): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateAllConversationsNotificationDate(): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun updateArchivedStatusLocally(conversationId: ConversationId, isArchived: Boolean, archivedStatusTimestamp: Instant): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun updateArchivedStatusRemotely(conversationId: ConversationId, isArchived: Boolean, archivedStatusTimestamp: Instant): Either<NetworkFailure, Unit>
Link copied to clipboard
abstract suspend fun updateChannelAddPermission(conversationId: ConversationId, channelAddPermission: ConversationDetails.Group.Channel.ChannelAddPermission): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateChannelAddPermissionLocally(conversationId: ConversationId, channelAddPermission: ConversationDetails.Group.Channel.ChannelAddPermission): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateChannelAddPermissionRemotely(conversationId: ConversationId, channelAddPermission: ConversationDetails.Group.Channel.ChannelAddPermission): Either<NetworkFailure, UpdateChannelAddPermissionResponse>
Link copied to clipboard
abstract suspend fun updateConversationGroupState(groupID: GroupID, groupState: Conversation.ProtocolInfo.MLSCapable.GroupState): Either<StorageFailure, Unit>
abstract suspend fun updateConversationGroupStateByConversationId(conversationId: ConversationId, groupState: Conversation.ProtocolInfo.MLSCapable.GroupState): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun updateConversationMemberRole(conversationId: ConversationId, userId: UserId, role: Conversation.Member.Role): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateConversationMembers(conversations: List<ConversationResponse>, selfUserTeamId: TeamId?, invalidateMembers: Boolean): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateConversationModifiedDate(qualifiedID: QualifiedID, date: Instant): Either<StorageFailure, Unit>
abstract suspend fun updateConversationModifiedDateToMaxOfSources(targetId: ConversationId, sourceIds: Collection<ConversationId>): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun updateConversationNotificationDate(qualifiedID: QualifiedID, date: Instant? = null): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun updateConversationReadDate(qualifiedID: QualifiedID, date: Instant): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun updateLegalHoldStatus(conversationId: ConversationId, legalHoldStatus: Conversation.LegalHoldStatus): Either<CoreFailure, Boolean>
Link copied to clipboard
abstract suspend fun updateMemberFromEvent(member: Conversation.Member, conversationID: ConversationId): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateMLSGroupIdAndState(conversationId: ConversationId, groupID: GroupID, epoch: ULong, groupState: Conversation.ProtocolInfo.MLSCapable.GroupState): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun updateMlsVerificationStatus(verificationStatus: Conversation.VerificationStatus, conversationID: ConversationId): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateMutedStatusLocally(conversationId: ConversationId, mutedStatus: MutedConversationStatus, mutedStatusTimestamp: Instant): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun updateMutedStatusRemotely(conversationId: ConversationId, mutedStatus: MutedConversationStatus, mutedStatusTimestamp: Instant): Either<NetworkFailure, Unit>
Link copied to clipboard
abstract suspend fun updateProtocolLocally(conversationId: ConversationId, protocol: Conversation.Protocol): Either<CoreFailure, ConversationProtocolUpdateStatus>

Update a conversation's protocol locally.

Link copied to clipboard
abstract suspend fun updateProtocolRemotely(conversationId: ConversationId, protocol: Conversation.Protocol): Either<CoreFailure, ConversationProtocolUpdateStatus>

Update a conversation's protocol remotely.

Link copied to clipboard
abstract suspend fun updateReadDateAndGetHasUnreadEvents(qualifiedID: QualifiedID, date: Instant): Either<StorageFailure, Boolean>
Link copied to clipboard
abstract suspend fun updateReadDatesAndGetHasUnreadEvents(conversationDates: Map<QualifiedID, Instant>): Either<StorageFailure, Map<QualifiedID, Boolean>>
Link copied to clipboard
abstract suspend fun updateReceiptMode(conversationId: ConversationId, receiptMode: Conversation.ReceiptMode): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateUserSelfDeletionTimer(conversationId: ConversationId, selfDeletionTimer: SelfDeletionTimer): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun whoDeletedMe(conversationId: ConversationId): Either<CoreFailure, UserId?>