Merge pull request #121 from kirmanak/v0-api-token

Fix authentication with API token on v0.5.6
This commit is contained in:
Kirill Kamakin
2022-12-16 21:34:00 +01:00
committed by GitHub
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()) { 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 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.AddRecipeRequestV0
import gq.kirmanak.mealient.datasource.v0.models.CreateApiTokenRequestV0 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.GetRecipeResponseV0
import gq.kirmanak.mealient.datasource.v0.models.GetRecipeSummaryResponseV0 import gq.kirmanak.mealient.datasource.v0.models.GetRecipeSummaryResponseV0
import gq.kirmanak.mealient.datasource.v0.models.GetUserInfoResponseV0 import gq.kirmanak.mealient.datasource.v0.models.GetUserInfoResponseV0
@@ -39,7 +40,7 @@ interface MealieDataSourceV0 {
suspend fun createApiToken( suspend fun createApiToken(
request: CreateApiTokenRequestV0, request: CreateApiTokenRequestV0,
): String ): CreateApiTokenResponseV0
suspend fun requestUserInfo(): GetUserInfoResponseV0 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.decode
import gq.kirmanak.mealient.datasource.v0.models.AddRecipeRequestV0 import gq.kirmanak.mealient.datasource.v0.models.AddRecipeRequestV0
import gq.kirmanak.mealient.datasource.v0.models.CreateApiTokenRequestV0 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.ErrorDetailV0
import gq.kirmanak.mealient.datasource.v0.models.GetRecipeResponseV0 import gq.kirmanak.mealient.datasource.v0.models.GetRecipeResponseV0
import gq.kirmanak.mealient.datasource.v0.models.GetRecipeSummaryResponseV0 import gq.kirmanak.mealient.datasource.v0.models.GetRecipeSummaryResponseV0
@@ -85,7 +86,7 @@ class MealieDataSourceV0Impl @Inject constructor(
override suspend fun createApiToken( override suspend fun createApiToken(
request: CreateApiTokenRequestV0, request: CreateApiTokenRequestV0,
): String = networkRequestWrapper.makeCallAndHandleUnauthorized( ): CreateApiTokenResponseV0 = networkRequestWrapper.makeCallAndHandleUnauthorized(
block = { service.createApiToken(request) }, block = { service.createApiToken(request) },
logMethod = { "createApiToken" }, logMethod = { "createApiToken" },
logParameters = { "request = $request" } logParameters = { "request = $request" }

View File

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