From 6486a4acb459784dd1d87148a242cf91d7646143 Mon Sep 17 00:00:00 2001 From: Eric Ampire Date: Mon, 6 Sep 2021 21:39:46 +0200 Subject: [PATCH] Adding User Use cases --- .../domain/usecase/UserUseCase.kt | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 domain/src/main/java/com/ericampire/android/androidstudycase/domain/usecase/UserUseCase.kt diff --git a/domain/src/main/java/com/ericampire/android/androidstudycase/domain/usecase/UserUseCase.kt b/domain/src/main/java/com/ericampire/android/androidstudycase/domain/usecase/UserUseCase.kt new file mode 100644 index 0000000..bcd0806 --- /dev/null +++ b/domain/src/main/java/com/ericampire/android/androidstudycase/domain/usecase/UserUseCase.kt @@ -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(dispatcher) { + override suspend fun execute(parameters: User) { + return repository.save(parameters) + } +} + +class FindUsersUseCase @Inject constructor( + private val repository: UserRepository, + @IoDispatcher dispatcher: CoroutineDispatcher +) : FlowUseCase>(dispatcher) { + override fun execute(parameters: Unit): Flow>> { + return repository.findAll() + } +} \ No newline at end of file