From 913ac843109db06f4132da5e4f21aee416fd7752 Mon Sep 17 00:00:00 2001 From: Kirill Kamakin Date: Fri, 16 Dec 2022 21:23:43 +0100 Subject: [PATCH] Fix authentication with API token on v0.5.6 --- .../mealient/data/auth/impl/AuthDataSourceImpl.kt | 2 +- .../mealient/datasource/v0/MealieDataSourceV0.kt | 3 ++- .../mealient/datasource/v0/MealieDataSourceV0Impl.kt | 3 ++- .../kirmanak/mealient/datasource/v0/MealieServiceV0.kt | 2 +- .../datasource/v0/models/CreateApiTokenResponseV0.kt | 9 +++++++++ 5 files changed, 15 insertions(+), 4 deletions(-) create mode 100644 datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/models/CreateApiTokenResponseV0.kt diff --git a/app/src/main/java/gq/kirmanak/mealient/data/auth/impl/AuthDataSourceImpl.kt b/app/src/main/java/gq/kirmanak/mealient/data/auth/impl/AuthDataSourceImpl.kt index 6ccf14e..70aaa2d 100644 --- a/app/src/main/java/gq/kirmanak/mealient/data/auth/impl/AuthDataSourceImpl.kt +++ b/app/src/main/java/gq/kirmanak/mealient/data/auth/impl/AuthDataSourceImpl.kt @@ -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 } } \ No newline at end of file diff --git a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieDataSourceV0.kt b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieDataSourceV0.kt index e9fff8d..b760abf 100644 --- a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieDataSourceV0.kt +++ b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieDataSourceV0.kt @@ -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 diff --git a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieDataSourceV0Impl.kt b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieDataSourceV0Impl.kt index f6eea02..89d5d70 100644 --- a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieDataSourceV0Impl.kt +++ b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieDataSourceV0Impl.kt @@ -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" } diff --git a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieServiceV0.kt b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieServiceV0.kt index aec47d2..1f291b8 100644 --- a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieServiceV0.kt +++ b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/MealieServiceV0.kt @@ -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 diff --git a/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/models/CreateApiTokenResponseV0.kt b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/models/CreateApiTokenResponseV0.kt new file mode 100644 index 0000000..a04d5f7 --- /dev/null +++ b/datasource/src/main/kotlin/gq/kirmanak/mealient/datasource/v0/models/CreateApiTokenResponseV0.kt @@ -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 +)