Split v1 creation to create/update

This commit is contained in:
Kirill Kamakin
2022-10-30 11:07:02 +01:00
parent 7ac0409cd5
commit 71d5900530
9 changed files with 57 additions and 21 deletions

View File

@@ -1,16 +1,20 @@
package gq.kirmanak.mealient.datasource.v1
import gq.kirmanak.mealient.datasource.v1.models.AddRecipeRequestV1
import gq.kirmanak.mealient.datasource.v1.models.GetRecipeResponseV1
import gq.kirmanak.mealient.datasource.v1.models.GetRecipeSummaryResponseV1
import gq.kirmanak.mealient.datasource.v1.models.VersionResponseV1
import gq.kirmanak.mealient.datasource.v1.models.*
interface MealieDataSourceV1 {
suspend fun addRecipe(
suspend fun createRecipe(
baseUrl: String,
token: String?,
recipe: AddRecipeRequestV1,
recipe: CreateRecipeRequestV1,
): String
suspend fun updateRecipe(
baseUrl: String,
token: String?,
slug: String,
recipe: UpdateRecipeRequestV1,
): String
/**

View File

@@ -19,16 +19,27 @@ class MealieDataSourceV1Impl @Inject constructor(
private val json: Json,
) : MealieDataSourceV1 {
override suspend fun addRecipe(
override suspend fun createRecipe(
baseUrl: String,
token: String?,
recipe: AddRecipeRequestV1
recipe: CreateRecipeRequestV1
): String = networkRequestWrapper.makeCallAndHandleUnauthorized(
block = { service.addRecipe("$baseUrl/api/recipes/create", token, recipe) },
logMethod = { "addRecipe" },
block = { service.createRecipe("$baseUrl/api/recipes", token, recipe) },
logMethod = { "createRecipe" },
logParameters = { "baseUrl = $baseUrl, token = $token, recipe = $recipe" }
)
override suspend fun updateRecipe(
baseUrl: String,
token: String?,
slug: String,
recipe: UpdateRecipeRequestV1
): String = networkRequestWrapper.makeCallAndHandleUnauthorized(
block = { service.updateRecipe("$baseUrl/api/recipes/$slug", token, recipe) },
logMethod = { "addRecipe" },
logParameters = { "baseUrl = $baseUrl, token = $token, slug = $slug, recipe = $recipe" }
)
override suspend fun authenticate(
baseUrl: String,
username: String,

View File

@@ -15,10 +15,17 @@ interface MealieServiceV1 {
): GetTokenResponseV1
@POST
suspend fun addRecipe(
suspend fun createRecipe(
@Url url: String,
@Header(AUTHORIZATION_HEADER_NAME) token: String?,
@Body addRecipeRequestV0: AddRecipeRequestV1,
@Body addRecipeRequest: CreateRecipeRequestV1,
): String
@PUT
suspend fun updateRecipe(
@Url url: String,
@Header(AUTHORIZATION_HEADER_NAME) token: String?,
@Body addRecipeRequest: UpdateRecipeRequestV1,
): String
@GET

View File

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

View File

@@ -10,7 +10,7 @@ data class GetRecipeResponseV1(
@SerialName("id") val remoteId: String,
@SerialName("name") val name: String,
@SerialName("slug") val slug: String,
@SerialName("image") val image: String,
@SerialName("image") val image: String? = null,
@SerialName("description") val description: String = "",
@SerialName("recipeCategory") val recipeCategories: List<String>,
@SerialName("tags") val tags: List<String>,

View File

@@ -4,7 +4,7 @@ import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class AddRecipeRequestV1(
data class UpdateRecipeRequestV1(
@SerialName("name") val name: String = "",
@SerialName("description") val description: String = "",
@SerialName("image") val image: String = "",