From 0e2b5f3c7df48a776602c2df828c098c9564e858 Mon Sep 17 00:00:00 2001 From: reyniersbram <55666730+reyniersbram@users.noreply.github.com> Date: Thu, 6 Apr 2023 22:52:00 +0200 Subject: [PATCH] #44 use interface for DAO's --- .../{AccountService.kt => AccountDAO.kt} | 2 +- .../domain/account/AuthenticateUseCase.kt | 13 ----------- .../account/CreateAnonymousAccountUseCase.kt | 13 ----------- .../domain/account/DeleteAccountUseCase.kt | 13 ----------- ...ntServiceImpl.kt => FirebaseAccountDAO.kt} | 4 ++-- .../domain/account/LinkAccountUseCase.kt | 22 ------------------- .../account/SendRecoveryEmailUseCase.kt | 13 ----------- .../studeez/domain/account/SignOutUseCase.kt | 18 --------------- 8 files changed, 3 insertions(+), 95 deletions(-) rename app/src/main/java/be/ugent/sel/studeez/domain/account/{AccountService.kt => AccountDAO.kt} (97%) delete mode 100644 app/src/main/java/be/ugent/sel/studeez/domain/account/AuthenticateUseCase.kt delete mode 100644 app/src/main/java/be/ugent/sel/studeez/domain/account/CreateAnonymousAccountUseCase.kt delete mode 100644 app/src/main/java/be/ugent/sel/studeez/domain/account/DeleteAccountUseCase.kt rename app/src/main/java/be/ugent/sel/studeez/domain/account/{AccountServiceImpl.kt => FirebaseAccountDAO.kt} (97%) delete mode 100644 app/src/main/java/be/ugent/sel/studeez/domain/account/LinkAccountUseCase.kt delete mode 100644 app/src/main/java/be/ugent/sel/studeez/domain/account/SendRecoveryEmailUseCase.kt delete mode 100644 app/src/main/java/be/ugent/sel/studeez/domain/account/SignOutUseCase.kt diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/account/AccountService.kt b/app/src/main/java/be/ugent/sel/studeez/domain/account/AccountDAO.kt similarity index 97% rename from app/src/main/java/be/ugent/sel/studeez/domain/account/AccountService.kt rename to app/src/main/java/be/ugent/sel/studeez/domain/account/AccountDAO.kt index dc068eb..42df960 100644 --- a/app/src/main/java/be/ugent/sel/studeez/domain/account/AccountService.kt +++ b/app/src/main/java/be/ugent/sel/studeez/domain/account/AccountDAO.kt @@ -19,7 +19,7 @@ package be.ugent.sel.studeez.domain.account import be.ugent.sel.studeez.data.local.models.User import kotlinx.coroutines.flow.Flow -interface AccountService { +interface AccountDAO { val currentUserId: String val hasUser: Boolean diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/account/AuthenticateUseCase.kt b/app/src/main/java/be/ugent/sel/studeez/domain/account/AuthenticateUseCase.kt deleted file mode 100644 index 02947f9..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/domain/account/AuthenticateUseCase.kt +++ /dev/null @@ -1,13 +0,0 @@ -package be.ugent.sel.studeez.domain.account - -import com.google.firebase.auth.FirebaseAuth -import kotlinx.coroutines.tasks.await -import javax.inject.Inject - -class AuthenticateUseCase @Inject constructor( - private val auth: FirebaseAuth, -) { - suspend operator fun invoke(email: String, password: String) { - auth.signInWithEmailAndPassword(email, password).await() - } -} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/account/CreateAnonymousAccountUseCase.kt b/app/src/main/java/be/ugent/sel/studeez/domain/account/CreateAnonymousAccountUseCase.kt deleted file mode 100644 index c5048ba..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/domain/account/CreateAnonymousAccountUseCase.kt +++ /dev/null @@ -1,13 +0,0 @@ -package be.ugent.sel.studeez.domain.account - -import com.google.firebase.auth.FirebaseAuth -import kotlinx.coroutines.tasks.await -import javax.inject.Inject - -class CreateAnonymousAccountUseCase @Inject constructor( - private val auth: FirebaseAuth, -) { - suspend operator fun invoke() { - auth.signInAnonymously().await() - } -} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/account/DeleteAccountUseCase.kt b/app/src/main/java/be/ugent/sel/studeez/domain/account/DeleteAccountUseCase.kt deleted file mode 100644 index 68bba2d..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/domain/account/DeleteAccountUseCase.kt +++ /dev/null @@ -1,13 +0,0 @@ -package be.ugent.sel.studeez.domain.account - -import com.google.firebase.auth.FirebaseAuth -import kotlinx.coroutines.tasks.await -import javax.inject.Inject - -class DeleteAccountUseCase @Inject constructor( - private val auth: FirebaseAuth, -) { - suspend operator fun invoke() { - auth.currentUser!!.delete().await() - } -} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/account/AccountServiceImpl.kt b/app/src/main/java/be/ugent/sel/studeez/domain/account/FirebaseAccountDAO.kt similarity index 97% rename from app/src/main/java/be/ugent/sel/studeez/domain/account/AccountServiceImpl.kt rename to app/src/main/java/be/ugent/sel/studeez/domain/account/FirebaseAccountDAO.kt index ad01080..09a7b77 100644 --- a/app/src/main/java/be/ugent/sel/studeez/domain/account/AccountServiceImpl.kt +++ b/app/src/main/java/be/ugent/sel/studeez/domain/account/FirebaseAccountDAO.kt @@ -26,9 +26,9 @@ import kotlinx.coroutines.flow.callbackFlow import kotlinx.coroutines.tasks.await import javax.inject.Inject -class AccountServiceImpl @Inject constructor( +class FirebaseAccountDAO @Inject constructor( private val auth: FirebaseAuth -) : AccountService { +) : AccountDAO { override val currentUserId: String get() = auth.currentUser?.uid.orEmpty() diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/account/LinkAccountUseCase.kt b/app/src/main/java/be/ugent/sel/studeez/domain/account/LinkAccountUseCase.kt deleted file mode 100644 index 6964343..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/domain/account/LinkAccountUseCase.kt +++ /dev/null @@ -1,22 +0,0 @@ -package be.ugent.sel.studeez.domain.account - -import be.ugent.sel.studeez.domain.trace -import com.google.firebase.auth.EmailAuthProvider -import com.google.firebase.auth.FirebaseAuth -import kotlinx.coroutines.tasks.await -import javax.inject.Inject - -class LinkAccountUseCase @Inject constructor( - private val auth: FirebaseAuth, -) { - - suspend operator fun invoke(email: String, password: String): Unit = - trace(LINK_ACCOUNT_TRACE) { - val credential = EmailAuthProvider.getCredential(email, password) - auth.currentUser!!.linkWithCredential(credential).await() - } - - companion object { - private const val LINK_ACCOUNT_TRACE = "linkAccount" - } -} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/account/SendRecoveryEmailUseCase.kt b/app/src/main/java/be/ugent/sel/studeez/domain/account/SendRecoveryEmailUseCase.kt deleted file mode 100644 index 7e2e8d6..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/domain/account/SendRecoveryEmailUseCase.kt +++ /dev/null @@ -1,13 +0,0 @@ -package be.ugent.sel.studeez.domain.account - -import com.google.firebase.auth.FirebaseAuth -import kotlinx.coroutines.tasks.await -import javax.inject.Inject - -class SendRecoveryEmailUseCase @Inject constructor( - private val auth: FirebaseAuth, -) { - suspend operator fun invoke(email: String) { - auth.sendPasswordResetEmail(email).await() - } -} \ No newline at end of file diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/account/SignOutUseCase.kt b/app/src/main/java/be/ugent/sel/studeez/domain/account/SignOutUseCase.kt deleted file mode 100644 index 2d83cfd..0000000 --- a/app/src/main/java/be/ugent/sel/studeez/domain/account/SignOutUseCase.kt +++ /dev/null @@ -1,18 +0,0 @@ -package be.ugent.sel.studeez.domain.account - -import com.google.firebase.auth.FirebaseAuth -import javax.inject.Inject - -class SignOutUseCase @Inject constructor( - private val auth: FirebaseAuth, - private val createAnonymousAccountUseCase: CreateAnonymousAccountUseCase, -) { - suspend operator fun invoke() { - if (auth.currentUser!!.isAnonymous) { - auth.currentUser!!.delete() - } - auth.signOut() - - createAnonymousAccountUseCase() - } -} \ No newline at end of file