Return V1 version response from V1 data source

This commit is contained in:
Kirill Kamakin
2022-10-29 16:57:21 +02:00
parent da33bc2730
commit 1502d3db9d
6 changed files with 22 additions and 8 deletions

View File

@@ -1,7 +1,5 @@
package gq.kirmanak.mealient.data.baseurl package gq.kirmanak.mealient.data.baseurl
data class VersionInfo( data class VersionInfo(
val production: Boolean,
val version: String, val version: String,
val demoStatus: Boolean,
) )

View File

@@ -7,6 +7,7 @@ import gq.kirmanak.mealient.database.recipe.entity.RecipeInstructionEntity
import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity import gq.kirmanak.mealient.database.recipe.entity.RecipeSummaryEntity
import gq.kirmanak.mealient.datasource.models.* import gq.kirmanak.mealient.datasource.models.*
import gq.kirmanak.mealient.datasource.v1.models.GetRecipeSummaryResponseV1 import gq.kirmanak.mealient.datasource.v1.models.GetRecipeSummaryResponseV1
import gq.kirmanak.mealient.datasource.v1.models.VersionResponseV1
import gq.kirmanak.mealient.datastore.recipe.AddRecipeDraft import gq.kirmanak.mealient.datastore.recipe.AddRecipeDraft
fun GetRecipeResponse.toRecipeEntity() = RecipeEntity( fun GetRecipeResponse.toRecipeEntity() = RecipeEntity(
@@ -43,7 +44,9 @@ fun GetRecipeSummaryResponseV1.recipeEntity() = RecipeSummaryEntity(
dateUpdated = dateUpdated, dateUpdated = dateUpdated,
) )
fun VersionResponse.toVersionInfo() = VersionInfo(production, version, demoStatus) fun VersionResponse.toVersionInfo() = VersionInfo(version)
fun VersionResponseV1.toVersionInfo() = VersionInfo(version)
fun AddRecipeDraft.toAddRecipeRequest() = AddRecipeRequest( fun AddRecipeDraft.toAddRecipeRequest() = AddRecipeRequest(
name = recipeName, name = recipeName,

View File

@@ -2,8 +2,8 @@ package gq.kirmanak.mealient.datasource.v1
import gq.kirmanak.mealient.datasource.models.AddRecipeRequest import gq.kirmanak.mealient.datasource.models.AddRecipeRequest
import gq.kirmanak.mealient.datasource.models.GetRecipeResponse import gq.kirmanak.mealient.datasource.models.GetRecipeResponse
import gq.kirmanak.mealient.datasource.models.VersionResponse
import gq.kirmanak.mealient.datasource.v1.models.GetRecipeSummaryResponseV1 import gq.kirmanak.mealient.datasource.v1.models.GetRecipeSummaryResponseV1
import gq.kirmanak.mealient.datasource.v1.models.VersionResponseV1
interface MealieDataSourceV1 { interface MealieDataSourceV1 {
@@ -24,7 +24,7 @@ interface MealieDataSourceV1 {
suspend fun getVersionInfo( suspend fun getVersionInfo(
baseUrl: String, baseUrl: String,
): VersionResponse ): VersionResponseV1
suspend fun requestRecipes( suspend fun requestRecipes(
baseUrl: String, baseUrl: String,

View File

@@ -3,8 +3,8 @@ package gq.kirmanak.mealient.datasource.v1
import gq.kirmanak.mealient.datasource.models.AddRecipeRequest import gq.kirmanak.mealient.datasource.models.AddRecipeRequest
import gq.kirmanak.mealient.datasource.models.GetRecipeResponse import gq.kirmanak.mealient.datasource.models.GetRecipeResponse
import gq.kirmanak.mealient.datasource.models.NetworkError import gq.kirmanak.mealient.datasource.models.NetworkError
import gq.kirmanak.mealient.datasource.models.VersionResponse
import gq.kirmanak.mealient.datasource.v1.models.GetRecipeSummaryResponseV1 import gq.kirmanak.mealient.datasource.v1.models.GetRecipeSummaryResponseV1
import gq.kirmanak.mealient.datasource.v1.models.VersionResponseV1
import gq.kirmanak.mealient.logging.Logger import gq.kirmanak.mealient.logging.Logger
import kotlinx.serialization.SerializationException import kotlinx.serialization.SerializationException
import kotlinx.serialization.json.Json import kotlinx.serialization.json.Json
@@ -33,7 +33,7 @@ class MealieDataSourceV1Impl @Inject constructor(
TODO("Not yet implemented") TODO("Not yet implemented")
} }
override suspend fun getVersionInfo(baseUrl: String): VersionResponse = makeCall( override suspend fun getVersionInfo(baseUrl: String): VersionResponseV1 = makeCall(
block = { getVersion("$baseUrl/api/app/about") }, block = { getVersion("$baseUrl/api/app/about") },
logMethod = { "getVersionInfo" }, logMethod = { "getVersionInfo" },
logParameters = { "baseUrl = $baseUrl" }, logParameters = { "baseUrl = $baseUrl" },

View File

@@ -3,6 +3,7 @@ package gq.kirmanak.mealient.datasource.v1
import gq.kirmanak.mealient.datasource.DataSourceModule.Companion.AUTHORIZATION_HEADER_NAME import gq.kirmanak.mealient.datasource.DataSourceModule.Companion.AUTHORIZATION_HEADER_NAME
import gq.kirmanak.mealient.datasource.models.* import gq.kirmanak.mealient.datasource.models.*
import gq.kirmanak.mealient.datasource.v1.models.GetRecipesResponseV1 import gq.kirmanak.mealient.datasource.v1.models.GetRecipesResponseV1
import gq.kirmanak.mealient.datasource.v1.models.VersionResponseV1
import retrofit2.http.* import retrofit2.http.*
interface MealieServiceV1 { interface MealieServiceV1 {
@@ -25,7 +26,7 @@ interface MealieServiceV1 {
@GET @GET
suspend fun getVersion( suspend fun getVersion(
@Url url: String, @Url url: String,
): VersionResponse ): VersionResponseV1
@GET @GET
suspend fun getRecipeSummary( suspend fun getRecipeSummary(

View File

@@ -0,0 +1,12 @@
package gq.kirmanak.mealient.datasource.v1.models
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class VersionResponseV1(
@SerialName("production") val production: Boolean,
@SerialName("version") val version: String,
@SerialName("demoStatus") val demoStatus: Boolean,
@SerialName("allowSignup") val allowSignup: Boolean,
)