From b3de23dc5402bd99f46166b9abd695f4ab506d44 Mon Sep 17 00:00:00 2001 From: lbarraga Date: Thu, 13 Apr 2023 17:20:31 +0200 Subject: [PATCH] #59 implementation of UserDAO --- .../domain/implementation/FirebaseUserDAO.kt | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseUserDAO.kt b/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseUserDAO.kt index d460762..ac8f455 100644 --- a/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseUserDAO.kt +++ b/app/src/main/java/be/ugent/sel/studeez/domain/implementation/FirebaseUserDAO.kt @@ -1,2 +1,29 @@ package be.ugent.sel.studeez.domain.implementation +import be.ugent.sel.studeez.domain.AccountDAO +import be.ugent.sel.studeez.domain.UserDAO +import com.google.firebase.firestore.DocumentReference +import com.google.firebase.firestore.FirebaseFirestore +import kotlinx.coroutines.tasks.await +import javax.inject.Inject + +class FirebaseUserDAO @Inject constructor( + private val firestore: FirebaseFirestore, + private val auth: AccountDAO + ) : UserDAO { + + override suspend fun getUserName(): String? { + return currentUserDocument().get().await().getString("username") + } + + override suspend fun save(newUsername: String) { + currentUserDocument().set(mapOf("username" to newUsername)) + } + + private fun currentUserDocument(): DocumentReference = + firestore.collection(USER_COLLECTION).document(auth.currentUserId) + + companion object { + private const val USER_COLLECTION = "users" + } +} \ No newline at end of file