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 } val hasSession: Boolean get() = settings.hasKey(ACCESS_TOKEN_KEY) fun clearSession() { settings.remove(ACCESS_TOKEN_KEY) settings.remove(SERVER_URL_KEY) } }