diff --git a/core/data/src/main/java/com/wap/wapp/core/data/repository/user/UserRepository.kt b/core/data/src/main/java/com/wap/wapp/core/data/repository/user/UserRepository.kt index 1c4e3b766..973161632 100644 --- a/core/data/src/main/java/com/wap/wapp/core/data/repository/user/UserRepository.kt +++ b/core/data/src/main/java/com/wap/wapp/core/data/repository/user/UserRepository.kt @@ -13,4 +13,6 @@ interface UserRepository { studentId: String, registeredAt: String, ): Result + + suspend fun deleteUserProfile(userId: String): Result } diff --git a/core/data/src/main/java/com/wap/wapp/core/data/repository/user/UserRepositoryImpl.kt b/core/data/src/main/java/com/wap/wapp/core/data/repository/user/UserRepositoryImpl.kt index d42557595..ae1e0f260 100644 --- a/core/data/src/main/java/com/wap/wapp/core/data/repository/user/UserRepositoryImpl.kt +++ b/core/data/src/main/java/com/wap/wapp/core/data/repository/user/UserRepositoryImpl.kt @@ -28,4 +28,7 @@ class UserRepositoryImpl @Inject constructor( registeredAt = registeredAt, ), ) + + override suspend fun deleteUserProfile(userId: String): Result = + userDataSource.deleteUserProfile(userId) } diff --git a/core/network/src/main/java/com/wap/wapp/core/network/source/user/UserDataSource.kt b/core/network/src/main/java/com/wap/wapp/core/network/source/user/UserDataSource.kt index e13b30201..93e48027c 100644 --- a/core/network/src/main/java/com/wap/wapp/core/network/source/user/UserDataSource.kt +++ b/core/network/src/main/java/com/wap/wapp/core/network/source/user/UserDataSource.kt @@ -9,4 +9,6 @@ interface UserDataSource { suspend fun getUserProfile(userId: String): Result suspend fun getUserId(): Result + + suspend fun deleteUserProfile(userId: String): Result } diff --git a/core/network/src/main/java/com/wap/wapp/core/network/source/user/UserDataSourceImpl.kt b/core/network/src/main/java/com/wap/wapp/core/network/source/user/UserDataSourceImpl.kt index d242636bf..d4f06c72f 100644 --- a/core/network/src/main/java/com/wap/wapp/core/network/source/user/UserDataSourceImpl.kt +++ b/core/network/src/main/java/com/wap/wapp/core/network/source/user/UserDataSourceImpl.kt @@ -49,4 +49,11 @@ class UserDataSourceImpl @Inject constructor( checkNotNull(userProfile) } } + + override suspend fun deleteUserProfile(userId: String): Result = runCatching { + firebaseFirestore.collection(USER_COLLECTION) + .document(userId) + .delete() + .await() + } }