Adding User Use cases

This commit is contained in:
2021-09-06 21:39:46 +02:00
parent ee695da0c7
commit 6486a4acb4
@@ -0,0 +1,29 @@
package com.ericampire.android.androidstudycase.domain.usecase
import com.ericampire.android.androidstudycase.domain.entity.User
import com.ericampire.android.androidstudycase.domain.repository.UserRepository
import com.ericampire.android.androidstudycase.util.IoDispatcher
import com.ericampire.android.androidstudycase.util.Result
import com.ericampire.android.androidstudycase.util.usecase.CoroutineUseCase
import com.ericampire.android.androidstudycase.util.usecase.FlowUseCase
import kotlinx.coroutines.CoroutineDispatcher
import kotlinx.coroutines.flow.Flow
import javax.inject.Inject
class SaveUserUseCase @Inject constructor(
private val repository: UserRepository,
@IoDispatcher dispatcher: CoroutineDispatcher
) : CoroutineUseCase<User, Unit>(dispatcher) {
override suspend fun execute(parameters: User) {
return repository.save(parameters)
}
}
class FindUsersUseCase @Inject constructor(
private val repository: UserRepository,
@IoDispatcher dispatcher: CoroutineDispatcher
) : FlowUseCase<Unit, List<User>>(dispatcher) {
override fun execute(parameters: Unit): Flow<Result<List<User>>> {
return repository.findAll()
}
}