All Downloads are FREE. Search and download functionalities are using the official Maven repository.

main.com.sceyt.chatuikit.persistence.interactor.UserInteractor.kt Maven / Gradle / Ivy

package com.sceyt.chatuikit.persistence.interactor

import com.sceyt.chat.models.settings.UserSettings
import com.sceyt.chat.models.user.PresenceState
import com.sceyt.chatuikit.data.models.SceytResponse
import com.sceyt.chatuikit.data.models.messages.SceytUser
import kotlinx.coroutines.flow.Flow

interface UserInteractor {
    suspend fun loadUsers(query: String): SceytResponse>
    suspend fun loadMoreUsers(): SceytResponse>
    suspend fun getUsersByIds(ids: List): SceytResponse>
    suspend fun getUserDbById(id: String): SceytUser?
    suspend fun getUsersDbByIds(id: List): List
    suspend fun getCurrentUser(): SceytUser?
    fun getCurrentUserNonSuspend(): SceytUser?
    fun getCurrentUserAsFlow(): Flow
    suspend fun uploadAvatar(avatarUrl: String): SceytResponse
    suspend fun updateProfile(firsName: String?, lastName: String?,
                              avatarUrl: String?, metadataMap: Map?
    ): SceytResponse

    suspend fun setPresenceState(presenceState: PresenceState): SceytResponse
    suspend fun updateStatus(status: String): SceytResponse
    suspend fun getSettings(): SceytResponse
    suspend fun muteNotifications(muteUntil: Long): SceytResponse
    suspend fun unMuteNotifications(): SceytResponse
    suspend fun blockUnBlockUser(userId: String, block: Boolean): SceytResponse>
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy