Fix authentication with API token on v0.5.6

This commit is contained in:
Kirill Kamakin
2022-12-16 21:23:43 +01:00
parent e7b57649b5
commit 913ac84310
5 changed files with 15 additions and 4 deletions

View File

@@ -28,7 +28,7 @@ class AuthDataSourceImpl @Inject constructor(
}
override suspend fun createApiToken(name: String): String = when (getVersion()) {
ServerVersion.V0 -> v0Source.createApiToken(CreateApiTokenRequestV0(name))
ServerVersion.V0 -> v0Source.createApiToken(CreateApiTokenRequestV0(name)).token
ServerVersion.V1 -> v1Source.createApiToken(CreateApiTokenRequestV1(name)).token
}
}

View File

@@ -2,6 +2,7 @@ package gq.kirmanak.mealient.datasource.v0
import gq.kirmanak.mealient.datasource.v0.models.AddRecipeRequestV0
import gq.kirmanak.mealient.datasource.v0.models.CreateApiTokenRequestV0
import gq.kirmanak.mealient.datasource.v0.models.CreateApiTokenResponseV0
import gq.kirmanak.mealient.datasource.v0.models.GetRecipeResponseV0
import gq.kirmanak.mealient.datasource.v0.models.GetRecipeSummaryResponseV0
import gq.kirmanak.mealient.datasource.v0.models.GetUserInfoResponseV0
@@ -39,7 +40,7 @@ interface MealieDataSourceV0 {
suspend fun createApiToken(
request: CreateApiTokenRequestV0,
): String
): CreateApiTokenResponseV0
suspend fun requestUserInfo(): GetUserInfoResponseV0

View File

@@ -5,6 +5,7 @@ import gq.kirmanak.mealient.datasource.NetworkRequestWrapper
import gq.kirmanak.mealient.datasource.decode
import gq.kirmanak.mealient.datasource.v0.models.AddRecipeRequestV0
import gq.kirmanak.mealient.datasource.v0.models.CreateApiTokenRequestV0
import gq.kirmanak.mealient.datasource.v0.models.CreateApiTokenResponseV0
import gq.kirmanak.mealient.datasource.v0.models.ErrorDetailV0
import gq.kirmanak.mealient.datasource.v0.models.GetRecipeResponseV0
import gq.kirmanak.mealient.datasource.v0.models.GetRecipeSummaryResponseV0
@@ -85,7 +86,7 @@ class MealieDataSourceV0Impl @Inject constructor(
override suspend fun createApiToken(
request: CreateApiTokenRequestV0,
): String = networkRequestWrapper.makeCallAndHandleUnauthorized(
): CreateApiTokenResponseV0 = networkRequestWrapper.makeCallAndHandleUnauthorized(
block = { service.createApiToken(request) },
logMethod = { "createApiToken" },
logParameters = { "request = $request" }

View File

@@ -39,7 +39,7 @@ interface MealieServiceV0 {
@POST("/api/users/api-tokens")
suspend fun createApiToken(
@Body request: CreateApiTokenRequestV0,
): String
): CreateApiTokenResponseV0
@GET("/api/users/self")
suspend fun getUserSelfInfo(): GetUserInfoResponseV0

View File

@@ -0,0 +1,9 @@
package gq.kirmanak.mealient.datasource.v0.models
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class CreateApiTokenResponseV0(
@SerialName("token") val token: String
)