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