2021-07-12 10:14:26 +02:00
|
|
|
package audio.funkwhale.ffa.utils
|
2020-06-21 13:36:42 +02:00
|
|
|
|
2021-07-23 14:10:13 +02:00
|
|
|
import android.content.Context
|
2021-08-22 09:48:33 +02:00
|
|
|
import audio.funkwhale.ffa.model.User
|
2020-06-21 13:36:42 +02:00
|
|
|
import com.github.kittinunf.fuel.Fuel
|
|
|
|
import com.github.kittinunf.fuel.coroutines.awaitObjectResponseResult
|
|
|
|
import com.github.kittinunf.fuel.gson.gsonDeserializerOf
|
|
|
|
import com.github.kittinunf.result.Result
|
|
|
|
import com.preference.PowerPreference
|
|
|
|
|
|
|
|
object Userinfo {
|
2021-07-23 14:10:13 +02:00
|
|
|
|
2021-08-09 06:50:46 +02:00
|
|
|
suspend fun get(context: Context, oAuth: OAuth): User? {
|
2020-06-21 13:36:42 +02:00
|
|
|
try {
|
2021-07-23 14:10:13 +02:00
|
|
|
val hostname =
|
|
|
|
PowerPreference.getFileByName(AppContext.PREFS_CREDENTIALS).getString("hostname")
|
2020-06-21 13:36:42 +02:00
|
|
|
val (_, _, result) = Fuel.get("$hostname/api/v1/users/users/me/")
|
2021-08-09 06:50:46 +02:00
|
|
|
.authorize(context, oAuth)
|
2020-06-21 13:36:42 +02:00
|
|
|
.awaitObjectResponseResult(gsonDeserializerOf(User::class.java))
|
|
|
|
|
|
|
|
return when (result) {
|
|
|
|
is Result.Success -> {
|
|
|
|
val user = result.get()
|
|
|
|
|
|
|
|
PowerPreference.getFileByName(AppContext.PREFS_CREDENTIALS).apply {
|
|
|
|
setString("actor_username", user.full_username)
|
|
|
|
}
|
|
|
|
|
|
|
|
user
|
|
|
|
}
|
|
|
|
|
|
|
|
else -> null
|
|
|
|
}
|
|
|
|
} catch (e: Exception) {
|
|
|
|
return null
|
|
|
|
}
|
|
|
|
}
|
2021-07-02 13:55:49 +02:00
|
|
|
}
|