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
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
Link copied to clipboard
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
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
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
Link copied to clipboard
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>