Create V1 files

This commit is contained in:
Kirill Kamakin
2022-08-20 12:49:06 +02:00
parent 288ad55995
commit ac8395134b
3 changed files with 132 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
package gq.kirmanak.mealient.datasource
import gq.kirmanak.mealient.datasource.models.AddRecipeRequest
import gq.kirmanak.mealient.datasource.models.GetRecipeResponse
import gq.kirmanak.mealient.datasource.models.GetRecipeSummaryResponse
import gq.kirmanak.mealient.datasource.models.VersionResponse
interface MealieDataSourceV1 {
suspend fun addRecipe(
baseUrl: String,
token: String?,
recipe: AddRecipeRequest,
): String
/**
* Tries to acquire authentication token using the provided credentials
*/
suspend fun authenticate(
baseUrl: String,
username: String,
password: String,
): String
suspend fun getVersionInfo(
baseUrl: String,
): VersionResponse
suspend fun requestRecipes(
baseUrl: String,
token: String?,
start: Int,
limit: Int,
): List<GetRecipeSummaryResponse>
suspend fun requestRecipeInfo(
baseUrl: String,
token: String?,
slug: String,
): GetRecipeResponse
}

View File

@@ -0,0 +1,41 @@
package gq.kirmanak.mealient.datasource
import gq.kirmanak.mealient.datasource.models.AddRecipeRequest
import gq.kirmanak.mealient.datasource.models.GetRecipeResponse
import gq.kirmanak.mealient.datasource.models.GetRecipeSummaryResponse
import gq.kirmanak.mealient.datasource.models.VersionResponse
class MealieDataSourceV1Impl : MealieDataSourceV1 {
override suspend fun addRecipe(
baseUrl: String,
token: String?,
recipe: AddRecipeRequest
): String {
TODO("Not yet implemented")
}
override suspend fun authenticate(baseUrl: String, username: String, password: String): String {
TODO("Not yet implemented")
}
override suspend fun getVersionInfo(baseUrl: String): VersionResponse {
TODO("Not yet implemented")
}
override suspend fun requestRecipes(
baseUrl: String,
token: String?,
start: Int,
limit: Int
): List<GetRecipeSummaryResponse> {
TODO("Not yet implemented")
}
override suspend fun requestRecipeInfo(
baseUrl: String,
token: String?,
slug: String
): GetRecipeResponse {
TODO("Not yet implemented")
}
}

View File

@@ -0,0 +1,50 @@
package gq.kirmanak.mealient.datasource
import gq.kirmanak.mealient.datasource.DataSourceModule.Companion.AUTHORIZATION_HEADER_NAME
import gq.kirmanak.mealient.datasource.models.*
import retrofit2.http.*
interface MealieServiceV1 {
@FormUrlEncoded
@POST
suspend fun getToken(
@Url url: String,
@Field("username") username: String,
@Field("password") password: String,
): GetTokenResponse
@POST
suspend fun addRecipe(
@Url url: String,
@Header(AUTHORIZATION_HEADER_NAME) token: String?,
@Body addRecipeRequest: AddRecipeRequest,
): String
@GET
suspend fun getVersion(
@Url url: String,
): VersionResponse
@GET
suspend fun getRecipeSummary(
@Url url: String,
@Header(AUTHORIZATION_HEADER_NAME) token: String?,
@Query("start") start: Int,
@Query("limit") limit: Int,
): List<GetRecipeSummaryResponse>
@GET
suspend fun getRecipeSummaryV1(
@Url url: String,
@Header(AUTHORIZATION_HEADER_NAME) token: String?,
@Query("page") page: Int,
@Query("perPage") perPage: Int,
): GetRecipesResponseV1
@GET
suspend fun getRecipe(
@Url url: String,
@Header(AUTHORIZATION_HEADER_NAME) token: String?,
): GetRecipeResponse
}