MeetingDataSource

internal class MeetingDataSource(selfUserId: UserId, meetingDAO: MeetingDao, meetingApi: MeetingApi, persistConversations: PersistConversationsUseCase, mlsConversationRepository: MLSConversationRepository, conversationRepository: ConversationRepository, pendingActionsRepository: PendingActionsRepository, userRepository: UserRepository, meetingMapper: MeetingMapper = MapperProvider.meetingMapper(), conversationMapper: ConversationMapper = MapperProvider.conversationMapper(selfUserId), idMapper: IdMapper = MapperProvider.idMapper()) : MeetingRepository

Constructors

Link copied to clipboard
constructor(selfUserId: UserId, meetingDAO: MeetingDao, meetingApi: MeetingApi, persistConversations: PersistConversationsUseCase, mlsConversationRepository: MLSConversationRepository, conversationRepository: ConversationRepository, pendingActionsRepository: PendingActionsRepository, userRepository: UserRepository, meetingMapper: MeetingMapper = MapperProvider.meetingMapper(), conversationMapper: ConversationMapper = MapperProvider.conversationMapper(selfUserId), idMapper: IdMapper = MapperProvider.idMapper())

Types

Link copied to clipboard
data class EstablishMLSFailure(val conversationId: ConversationId, val reason: CoreFailure) : CoreFailure.FeatureFailure
Link copied to clipboard
data object MeetingNotSupportedFailure : CoreFailure.FeatureFailure
Link copied to clipboard
data class UpdateConversationNameFailure(val conversationId: ConversationId, val reason: CoreFailure) : CoreFailure.FeatureFailure

Functions

Link copied to clipboard
open suspend override fun createNewMeeting(meeting: UpsertMeeting, generateOccurrencesFrom: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil(), transactionContext: CryptoTransactionContext): Either<CoreFailure, CreateNewMeetingResult>
Link copied to clipboard
open suspend override fun deleteMeeting(meetingId: MeetingId): Either<CoreFailure, Unit>
Link copied to clipboard
open suspend override fun deleteMeetingLocally(meetingId: MeetingId): Either<StorageFailure, Unit>
Link copied to clipboard
open suspend override fun fetchAndPersistMeeting(meetingId: MeetingId, generateOccurrencesFrom: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil()): Either<CoreFailure, Meeting>
Link copied to clipboard
open suspend override fun fetchAndPersistMeetings(transactionContext: CryptoTransactionContext, generateOccurrencesFrom: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil()): Either<CoreFailure, List<Meeting>>
Link copied to clipboard
open suspend override fun getMeeting(meetingId: MeetingId): Either<StorageFailure, Meeting>
Link copied to clipboard
open suspend override fun getMeetingRemindersWithin(startInclusive: Instant, endExclusive: Instant): List<MeetingReminder>
Link copied to clipboard
open suspend override fun getMeetingsByConversationId(conversationId: ConversationId): Either<StorageFailure, List<Meeting>>
Link copied to clipboard
open suspend override fun getNextMeetingReminder(from: Instant): MeetingReminder?
Link copied to clipboard
open suspend override fun getNextUnfinishedMeetingOccurrence(meetingId: MeetingId, from: Instant = currentInstant()): Either<StorageFailure, MeetingOccurrence>
Link copied to clipboard
open suspend override fun getPaginatedMeetingOccurrences(pagingConfig: PagingConfig, startingOffset: Long, from: Instant = currentInstant().asStartOfDay()): Flow<PagingData<MeetingOccurrence>>
Link copied to clipboard
internal suspend fun MeetingRepository.handleMeetingFetchAndUpsert(meetingId: MeetingId, eventLogger: EventProcessingLogger): Either<CoreFailure, Meeting?>

Returns the persisted meeting, or null when the event is skipped because the meeting is missing or unsupported.

Link copied to clipboard
open suspend override fun observeMeetingOccurrence(occurrenceId: String): Flow<MeetingOccurrence?>
Link copied to clipboard
open override fun observeMeetingReminderChanges(): Flow<Unit>
Link copied to clipboard
open suspend override fun syncMeetingOccurrences(removeOlderThan: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil()): Either<CoreFailure, Unit>
Link copied to clipboard
open suspend override fun updateMeeting(meetingId: MeetingId, meeting: UpsertMeeting, generateOccurrencesFrom: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil(), transactionContext: CryptoTransactionContext): Either<CoreFailure, MLSAdditionResult>