aboutsummaryrefslogtreecommitdiff
path: root/shared/src/commonMain/kotlin/mx/trackermap/TrackerMap/client/infrastructure/SessionManager.kt
blob: caf2da1d179a4f0668d230092561a746ba401bab (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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)
    }
}