diff options
Diffstat (limited to 'shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/SessionManager.kt')
-rw-r--r-- | shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/SessionManager.kt | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/SessionManager.kt b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/SessionManager.kt new file mode 100644 index 0000000..caf2da1 --- /dev/null +++ b/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/SessionManager.kt @@ -0,0 +1,35 @@ +package mx.trackermap.TrackerMap.client.infrastructure + +import com.russhwolf.settings.Settings +import com.russhwolf.settings.get +import com.russhwolf.settings.set +import mx.trackermap.TrackerMap.Injectable + +class SessionManager( + private val defaultBaseUrl: String +): Injectable { + + companion object { + const val SERVER_URL_KEY = "server_url" + const val ACCESS_TOKEN_KEY = "access_token" + } + + private val settings = Settings() + + var baseUrl: String + get() = settings[SERVER_URL_KEY] ?: defaultBaseUrl + set(baseUrl) { + settings[SERVER_URL_KEY] = baseUrl + } + + var token: String + get() = settings[ACCESS_TOKEN_KEY] ?: "" + set(token) { + settings[ACCESS_TOKEN_KEY] = token + } + + fun clearSession() { + settings.remove(ACCESS_TOKEN_KEY) + settings.remove(SERVER_URL_KEY) + } +}
\ No newline at end of file |