From 4a59047f3ba8c3792690017822cf3ff420c66475 Mon Sep 17 00:00:00 2001 From: Andrea Brighi Date: Fri, 28 Apr 2023 15:15:32 +0200 Subject: [PATCH] feat(access): create local data storage for access --- .../datasource/AccessLocalDataStorage.kt | 10 ++++++ .../datasource/AccessLocalDataStorageImpl.kt | 31 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 accessData/src/main/kotlin/com/intelligentbackpack/accessdata/datasource/AccessLocalDataStorage.kt create mode 100644 accessData/src/main/kotlin/com/intelligentbackpack/accessdata/datasource/AccessLocalDataStorageImpl.kt diff --git a/accessData/src/main/kotlin/com/intelligentbackpack/accessdata/datasource/AccessLocalDataStorage.kt b/accessData/src/main/kotlin/com/intelligentbackpack/accessdata/datasource/AccessLocalDataStorage.kt new file mode 100644 index 00000000..a2578588 --- /dev/null +++ b/accessData/src/main/kotlin/com/intelligentbackpack/accessdata/datasource/AccessLocalDataStorage.kt @@ -0,0 +1,10 @@ +package com.intelligentbackpack.accessdata.datasource + +import com.intelligentbackpack.accessdomain.entities.User + +interface AccessLocalDataStorage { + fun isUserSaved(): Boolean + fun saveUser(user: User) + fun getUser(): User + fun deleteUser() +} \ No newline at end of file diff --git a/accessData/src/main/kotlin/com/intelligentbackpack/accessdata/datasource/AccessLocalDataStorageImpl.kt b/accessData/src/main/kotlin/com/intelligentbackpack/accessdata/datasource/AccessLocalDataStorageImpl.kt new file mode 100644 index 00000000..ba92c1e8 --- /dev/null +++ b/accessData/src/main/kotlin/com/intelligentbackpack/accessdata/datasource/AccessLocalDataStorageImpl.kt @@ -0,0 +1,31 @@ +package com.intelligentbackpack.accessdata.datasource + +import com.intelligentbackpack.accessdata.exception.MissingUserException +import com.intelligentbackpack.accessdata.exception.SavingUserException +import com.intelligentbackpack.accessdata.storage.StorageUser +import com.intelligentbackpack.accessdomain.entities.User + +class AccessLocalDataStorageImpl(private val storage: StorageUser) : AccessLocalDataStorage { + override fun isUserSaved(): Boolean { + return storage.isUserSaved() + } + + override fun saveUser(user: User) { + try { + storage.saveUser(user) + } + catch (e: Exception) { + throw SavingUserException() + } + } + + override fun getUser(): User { + if (!storage.isUserSaved()) + throw MissingUserException() + return storage.getUser() + } + + override fun deleteUser() { + storage.deleteUser() + } +} \ No newline at end of file