Allow reading base url and token
This commit is contained in:
@@ -4,4 +4,8 @@ interface AuthRepo {
|
|||||||
suspend fun isAuthenticated(): Boolean
|
suspend fun isAuthenticated(): Boolean
|
||||||
|
|
||||||
suspend fun authenticate(username: String, password: String, baseUrl: String): Throwable?
|
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 {
|
) : AuthRepo {
|
||||||
override suspend fun isAuthenticated(): Boolean {
|
override suspend fun isAuthenticated(): Boolean {
|
||||||
Timber.v("isAuthenticated")
|
Timber.v("isAuthenticated")
|
||||||
val authenticated = storage.isAuthenticated()
|
val authenticated = getToken() != null
|
||||||
Timber.d("isAuthenticated() response $authenticated")
|
Timber.d("isAuthenticated() response $authenticated")
|
||||||
return authenticated
|
return authenticated
|
||||||
}
|
}
|
||||||
@@ -27,4 +27,14 @@ class AuthRepoImpl @Inject constructor(
|
|||||||
storage.storeAuthData(token, baseUrl)
|
storage.storeAuthData(token, baseUrl)
|
||||||
return null
|
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
|
package gq.kirmanak.mealie.data.auth
|
||||||
|
|
||||||
interface AuthStorage {
|
interface AuthStorage {
|
||||||
suspend fun isAuthenticated(): Boolean
|
|
||||||
suspend fun storeAuthData(token: String, baseUrl: String)
|
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 TOKEN_KEY = "AUTH_TOKEN"
|
||||||
private const val BASE_URL_KEY = "BASE_URL"
|
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
|
private val sharedPreferences: SharedPreferences
|
||||||
get() = PreferenceManager.getDefaultSharedPreferences(context)
|
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) {
|
override suspend fun storeAuthData(token: String, baseUrl: String) {
|
||||||
Timber.v("storeAuthData() called with: token = $token, baseUrl = $baseUrl")
|
Timber.v("storeAuthData() called with: token = $token, baseUrl = $baseUrl")
|
||||||
sharedPreferences.edit()
|
sharedPreferences.edit()
|
||||||
@@ -30,4 +24,22 @@ class AuthStorageImpl @Inject constructor(@ApplicationContext private val contex
|
|||||||
.putString(BASE_URL_KEY, baseUrl)
|
.putString(BASE_URL_KEY, baseUrl)
|
||||||
.apply()
|
.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