MeetingRepository

internal interface MeetingRepository

Inheritors

Functions

Link copied to clipboard
abstract suspend fun createNewMeeting(meeting: UpsertMeeting, generateOccurrencesFrom: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil(), transactionContext: CryptoTransactionContext): Either<CoreFailure, CreateNewMeetingResult>
Link copied to clipboard
abstract suspend fun deleteMeeting(meetingId: MeetingId): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun deleteMeetingLocally(meetingId: MeetingId): Either<StorageFailure, Unit>
Link copied to clipboard
abstract suspend fun fetchAndPersistMeeting(meetingId: MeetingId, generateOccurrencesFrom: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil()): Either<CoreFailure, Meeting>
Link copied to clipboard
abstract suspend fun fetchAndPersistMeetings(transactionContext: CryptoTransactionContext, generateOccurrencesFrom: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil()): Either<CoreFailure, List<Meeting>>
Link copied to clipboard
abstract suspend fun getMeeting(meetingId: MeetingId): Either<StorageFailure, Meeting>
Link copied to clipboard
abstract suspend fun getMeetingRemindersWithin(startInclusive: Instant, endExclusive: Instant): List<MeetingReminder>
Link copied to clipboard
abstract suspend fun getMeetingsByConversationId(conversationId: ConversationId): Either<StorageFailure, List<Meeting>>
Link copied to clipboard
abstract suspend fun getNextMeetingReminder(from: Instant): MeetingReminder?
Link copied to clipboard
abstract suspend fun getNextUnfinishedMeetingOccurrence(meetingId: MeetingId, from: Instant = currentInstant()): Either<StorageFailure, MeetingOccurrence>
Link copied to clipboard
abstract suspend 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
abstract suspend fun observeMeetingOccurrence(occurrenceId: String): Flow<MeetingOccurrence?>
Link copied to clipboard
abstract fun observeMeetingReminderChanges(): Flow<Unit>
Link copied to clipboard
abstract suspend fun syncMeetingOccurrences(removeOlderThan: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil()): Either<CoreFailure, Unit>
Link copied to clipboard
abstract suspend fun updateMeeting(meetingId: MeetingId, meeting: UpsertMeeting, generateOccurrencesFrom: Instant = occurrenceOutdatedThreshold(), generateOccurrencesUntil: Instant = occurrenceGenerationUntil(), transactionContext: CryptoTransactionContext): Either<CoreFailure, MLSAdditionResult>