Sobes.tech
Junior — Middle

É possível usar o Interactor para agregar dados de várias fontes?

sobes.tech IA

Resposta da IA

Sim, o Interactor (na arquitetura Clean Architecture ou semelhante) pode ser usado para agregar dados de várias fontes. O Interactor é responsável pela lógica de negócio e pode acessar diferentes repositórios ou serviços para coletar os dados necessários.

Por exemplo, se precisar obter informações de um usuário de uma base local e complementá-las com dados de uma API remota, o Interactor chamará ambas as fontes, combinará os resultados e retornará um objeto agregado.

Exemplo em Kotlin:

class UserInteractor(
    private val localRepo: UserLocalRepository,
    private val remoteRepo: UserRemoteRepository
) {
    suspend fun getUserData(userId: String): UserData {
        val localData = localRepo.getUser(userId)
        val remoteData = remoteRepo.fetchUserDetails(userId)
        return mergeData(localData, remoteData)
    }

    private fun mergeData(local: UserLocal, remote: UserRemote): UserData {
        // Combina os dados de acordo com a lógica de negócio
        return UserData(
            id = local.id,
            name = local.name ?: remote.name,
            email = remote.email
        )
    }
}

Dessa forma, o Interactor atua como uma camada que agrega dados e implementa a lógica de negócio.