Allow reading base url and token
This commit is contained in:
@@ -4,4 +4,8 @@ interface AuthRepo {
|
||||
suspend fun isAuthenticated(): Boolean
|
||||
|
||||
suspend fun authenticate(username: String, password: String, baseUrl: String): Throwable?
|
||||
|
||||
suspend fun getBaseUrl(): String?
|
||||
|
||||
suspend fun getToken(): String?
|
||||
}
|
||||
@@ -9,7 +9,7 @@ class AuthRepoImpl @Inject constructor(
|
||||
) : AuthRepo {
|
||||
override suspend fun isAuthenticated(): Boolean {
|
||||
Timber.v("isAuthenticated")
|
||||
val authenticated = storage.isAuthenticated()
|
||||
val authenticated = getToken() != null
|
||||
Timber.d("isAuthenticated() response $authenticated")
|
||||
return authenticated
|
||||
}
|
||||
@@ -27,4 +27,14 @@ class AuthRepoImpl @Inject constructor(
|
||||
storage.storeAuthData(token, baseUrl)
|
||||
return null
|
||||
}
|
||||
|
||||
override suspend fun getBaseUrl(): String? {
|
||||
Timber.v("getBaseUrl() called")
|
||||
return storage.getBaseUrl()
|
||||
}
|
||||
|
||||
override suspend fun getToken(): String? {
|
||||
Timber.v("getToken() called")
|
||||
return storage.getToken()
|
||||
}
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
package gq.kirmanak.mealie.data.auth
|
||||
|
||||
interface AuthStorage {
|
||||
suspend fun isAuthenticated(): Boolean
|
||||
suspend fun storeAuthData(token: String, baseUrl: String)
|
||||
|
||||
suspend fun getBaseUrl(): String?
|
||||
|
||||
suspend fun getToken(): String?
|
||||
}
|
||||
@@ -12,17 +12,11 @@ import javax.inject.Inject
|
||||
private const val TOKEN_KEY = "AUTH_TOKEN"
|
||||
private const val BASE_URL_KEY = "BASE_URL"
|
||||
|
||||
class AuthStorageImpl @Inject constructor(@ApplicationContext private val context: Context) : AuthStorage {
|
||||
class AuthStorageImpl @Inject constructor(@ApplicationContext private val context: Context) :
|
||||
AuthStorage {
|
||||
private val sharedPreferences: SharedPreferences
|
||||
get() = PreferenceManager.getDefaultSharedPreferences(context)
|
||||
|
||||
override suspend fun isAuthenticated(): Boolean = withContext(Dispatchers.IO) {
|
||||
Timber.v("isAuthenticated() called")
|
||||
val token = sharedPreferences.getString(TOKEN_KEY, null)
|
||||
Timber.d("isAuthenticated: token is $token")
|
||||
token != null
|
||||
}
|
||||
|
||||
override suspend fun storeAuthData(token: String, baseUrl: String) {
|
||||
Timber.v("storeAuthData() called with: token = $token, baseUrl = $baseUrl")
|
||||
sharedPreferences.edit()
|
||||
@@ -30,4 +24,22 @@ class AuthStorageImpl @Inject constructor(@ApplicationContext private val contex
|
||||
.putString(BASE_URL_KEY, baseUrl)
|
||||
.apply()
|
||||
}
|
||||
|
||||
override suspend fun getBaseUrl(): String? {
|
||||
Timber.v("getBaseUrl() called")
|
||||
val baseUrl = getString(BASE_URL_KEY)
|
||||
Timber.d("getBaseUrl: base url is $baseUrl")
|
||||
return baseUrl
|
||||
}
|
||||
|
||||
override suspend fun getToken(): String? {
|
||||
Timber.v("getToken() called")
|
||||
val token = getString(TOKEN_KEY)
|
||||
Timber.d("getToken: token is $token")
|
||||
return token
|
||||
}
|
||||
|
||||
private suspend fun getString(key: String): String? = withContext(Dispatchers.Default) {
|
||||
sharedPreferences.getString(key, null)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user