UserDataSource
internal class UserDataSource(userDAO: UserDAO, clientDAO: ClientDAO, memberDAO: MemberDAO, appDAO: AppDAO, selfApi: SelfApi, userDetailsApi: UserDetailsApi, upgradePersonalToTeamApi: UpgradePersonalToTeamApi, teamsApi: TeamsApi, sessionRepository: SessionRepository, selfUserId: UserId, selfTeamIdProvider: SelfTeamIdProvider, legalHoldHandler: LegalHoldHandler, idMapper: IdMapper = MapperProvider.idMapper(), userMapper: UserMapper = MapperProvider.userMapper(), teamMapper: TeamMapper = MapperProvider.teamMapper(), availabilityStatusMapper: AvailabilityStatusMapper = MapperProvider.availabilityStatusMapper(), userTypeEntityMapper: UserEntityTypeMapper = MapperProvider.userTypeEntityMapper(), memberMapper: MemberMapper = MapperProvider.memberMapper(), appMapper: AppMapper = MapperProvider.appMapper()) : UserRepository
Constructors
Link copied to clipboard
internal constructor(userDAO: UserDAO, clientDAO: ClientDAO, memberDAO: MemberDAO, appDAO: AppDAO, selfApi: SelfApi, userDetailsApi: UserDetailsApi, upgradePersonalToTeamApi: UpgradePersonalToTeamApi, teamsApi: TeamsApi, sessionRepository: SessionRepository, selfUserId: UserId, selfTeamIdProvider: SelfTeamIdProvider, legalHoldHandler: LegalHoldHandler, idMapper: IdMapper = MapperProvider.idMapper(), userMapper: UserMapper = MapperProvider.userMapper(), teamMapper: TeamMapper = MapperProvider.teamMapper(), availabilityStatusMapper: AvailabilityStatusMapper = MapperProvider.availabilityStatusMapper(), userTypeEntityMapper: UserEntityTypeMapper = MapperProvider.userTypeEntityMapper(), memberMapper: MemberMapper = MapperProvider.memberMapper(), appMapper: AppMapper = MapperProvider.appMapper())
Functions
Link copied to clipboard
Marks federated user as defederated in order to hold conversation history when backends stops federating.
Link copied to clipboard
Fetches user information for all of users id stored in the DB
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open suspend override fun fetchUsersByIds(qualifiedUserIdList: Set<UserId>): Either<CoreFailure, Boolean>
Link copied to clipboard
Link copied to clipboard
open suspend override fun fetchUsersLegalHoldConsent(userIds: Set<UserId>): Either<CoreFailure, ListUsersLegalHoldConsent>
Link copied to clipboard
open suspend override fun getAllRecipients(): Either<CoreFailure, Pair<List<Recipient>, List<Recipient>>>
Link copied to clipboard
Link copied to clipboard
open suspend override fun getKnownUserMinimized(userId: UserId): Either<StorageFailure, OtherUserMinimized>
Link copied to clipboard
Link copied to clipboard
open suspend override fun getOneOnOnConversationId(userId: QualifiedID): Either<StorageFailure, ConversationId>
Link copied to clipboard
Link copied to clipboard
open suspend override fun getUsersMinimizedByQualifiedIDs(userIds: List<UserId>): Either<StorageFailure, List<OtherUserMinimized>>
Link copied to clipboard
open suspend override fun getUsersSummaryByIds(userIds: List<QualifiedID>): Either<StorageFailure, List<UserSummary>>
Gets users summary by their ids.
Link copied to clipboard
Link copied to clipboard
open suspend override fun insertOrIgnoreIncompleteUsers(userIds: List<QualifiedID>): Either<StorageFailure, Unit>
Link copied to clipboard
open suspend override fun insertSelfIncompleteUserWithOnlyEmail(email: String): Either<CoreFailure, Unit>
Link copied to clipboard
Link copied to clipboard
open suspend override fun isAtLeastOneUserATeamMember(userId: List<UserId>, teamId: TeamId): Either<StorageFailure, Boolean>
Link copied to clipboard
open suspend override fun isClientMlsCapable(userId: UserId, clientId: ClientId): Either<StorageFailure, Boolean>
Link copied to clipboard
Link copied to clipboard
open suspend override fun markUserAsDeletedAndRemoveFromGroupConversations(userId: UserId): Either<CoreFailure, List<ConversationId>>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open override fun observeAllKnownUsersNotInConversation(conversationId: ConversationId): Flow<Either<StorageFailure, List<OtherUser>>>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open suspend override fun removeUserBrokenAsset(qualifiedID: QualifiedID): Either<StorageFailure, Unit>
Removes broken user asset to avoid fetching it until next sync.
Link copied to clipboard
Updates users without metadata from the server.
Link copied to clipboard
open suspend override fun updateActiveOneOnOneConversation(userId: UserId, conversationId: ConversationId): Either<CoreFailure, Unit>
Link copied to clipboard
open suspend override fun updateActiveOneOnOneConversationIfNotSet(userId: UserId, conversationId: ConversationId): Either<CoreFailure, Unit>
Link copied to clipboard
open suspend override fun updateOtherUserAvailabilityStatus(userId: UserId, status: UserAvailabilityStatus)
Link copied to clipboard
open suspend override fun updateSelfUser(newName: String? = null, newAccent: Int? = null, newAssetId: String? = null): Either<CoreFailure, Unit>
Link copied to clipboard
open suspend override fun updateSupportedProtocols(protocols: Set<SupportedProtocol>): Either<CoreFailure, Unit>
Link copied to clipboard
open suspend override fun updateTeamId(userId: UserId, teamId: TeamId): Either<StorageFailure, Unit>
Link copied to clipboard