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())

Types

Link copied to clipboard
object Companion

Functions

Link copied to clipboard
open suspend override fun defederateUser(userId: UserId): Either<CoreFailure, Unit>

Marks federated user as defederated in order to hold conversation history when backends stops federating.

Link copied to clipboard
open suspend override fun fetchAllOtherUsers(): Either<CoreFailure, Unit>

Fetches user information for all of users id stored in the DB

Link copied to clipboard
open suspend override fun fetchSelfUser(): Either<CoreFailure, Unit>
Link copied to clipboard
open suspend override fun fetchUserInfo(userId: UserId): Either<CoreFailure, Unit>
Link copied to clipboard
open suspend override fun fetchUsersByIds(qualifiedUserIdList: Set<UserId>): Either<CoreFailure, Boolean>
Link copied to clipboard
open suspend override fun fetchUsersIfUnknownByIds(ids: Set<UserId>): Either<CoreFailure, Unit>
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
open suspend override fun getKnownUser(userId: UserId): Flow<OtherUser?>
Link copied to clipboard
open suspend override fun getKnownUserMinimized(userId: UserId): Either<StorageFailure, OtherUserMinimized>
Link copied to clipboard
open suspend override fun getNameAndHandle(userId: UserId): Either<StorageFailure, NameAndHandle>
Link copied to clipboard
open suspend override fun getOneOnOnConversationId(userId: QualifiedID): Either<StorageFailure, ConversationId>
Link copied to clipboard
open suspend override fun getSelfUser(): Either<StorageFailure, SelfUser>
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
open suspend override fun getUsersWithOneOnOneConversation(): List<OtherUser>
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
open suspend override fun insertUsersIfUnknown(users: List<User>): Either<StorageFailure, Unit>
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
open suspend override fun markAsDeleted(userId: List<UserId>): Either<StorageFailure, Unit>
open suspend override fun markUserAsDeletedAndRemoveFromGroupConversations(userId: UserId): Either<CoreFailure, List<ConversationId>>
Link copied to clipboard
open suspend override fun migrateUserToTeam(teamName: String): Either<CoreFailure, CreateUserTeam>
Link copied to clipboard
open suspend override fun observeAllKnownUsers(): Flow<Either<StorageFailure, List<OtherUser>>>
Link copied to clipboard
open override fun observeAllKnownUsersNotInConversation(conversationId: ConversationId): Flow<Either<StorageFailure, List<OtherUser>>>
Link copied to clipboard
open suspend override fun observeSelfUser(): Flow<SelfUser>
Link copied to clipboard
open suspend override fun observeSelfUserWithTeam(): Flow<Pair<SelfUser, Team?>>
Link copied to clipboard
open suspend override fun observeUser(userId: UserId): Flow<User?>
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
open suspend override fun syncUsersWithoutMetadata(): Either<CoreFailure, Unit>

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
open suspend override fun updateUserFromEvent(event: Event.User.Update): Either<CoreFailure, Unit>
Link copied to clipboard
open suspend override fun userById(userId: UserId): Either<CoreFailure, OtherUser>