From d3a02cc4b34e8399ecf011bc13fcc6a09f6006f7 Mon Sep 17 00:00:00 2001 From: vrexpert Date: Thu, 13 Jun 2024 20:23:48 +0900 Subject: [PATCH] =?UTF-8?q?feat(recipeDetail):=20=EB=A0=88=EC=8B=9C?= =?UTF-8?q?=ED=94=BC=20=EC=83=81=EC=84=B8=20=EC=A1=B0=ED=9A=8C=20api=20?= =?UTF-8?q?=EC=82=AC=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/data/repository/api/RecipeRepository.kt | 1 + .../banchango/core/data/api/RecipeApi.kt | 6 ++++++ .../data/repository/DefaultRecipeRepository.kt | 15 ++++++++++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/Android/core/data-api/src/main/java/com/sundaegukbap/banchango/core/data/repository/api/RecipeRepository.kt b/Android/core/data-api/src/main/java/com/sundaegukbap/banchango/core/data/repository/api/RecipeRepository.kt index acfcf5f..9157718 100644 --- a/Android/core/data-api/src/main/java/com/sundaegukbap/banchango/core/data/repository/api/RecipeRepository.kt +++ b/Android/core/data-api/src/main/java/com/sundaegukbap/banchango/core/data/repository/api/RecipeRepository.kt @@ -4,4 +4,5 @@ import com.sundaegukbap.banchango.Recipe interface RecipeRepository { suspend fun getRecipeRecommendation(): Result> + suspend fun getRecipeDetail(id: Int): Result } diff --git a/Android/core/data/src/main/java/com/sundaegukbap/banchango/core/data/api/RecipeApi.kt b/Android/core/data/src/main/java/com/sundaegukbap/banchango/core/data/api/RecipeApi.kt index 7995525..25aada2 100644 --- a/Android/core/data/src/main/java/com/sundaegukbap/banchango/core/data/api/RecipeApi.kt +++ b/Android/core/data/src/main/java/com/sundaegukbap/banchango/core/data/api/RecipeApi.kt @@ -10,4 +10,10 @@ internal interface RecipeApi { suspend fun getRecipeRecommendation( @Path("userId") userId: Long ): Response> + + @GET("api/recipe/{userId}/{recipeId}") + suspend fun getRecipeDetail( + @Path("userId") userId: Long, + @Path("recipeId") recipeId: Long + ): Response } diff --git a/Android/core/data/src/main/java/com/sundaegukbap/banchango/core/data/repository/DefaultRecipeRepository.kt b/Android/core/data/src/main/java/com/sundaegukbap/banchango/core/data/repository/DefaultRecipeRepository.kt index 478cd84..28c3d1e 100644 --- a/Android/core/data/src/main/java/com/sundaegukbap/banchango/core/data/repository/DefaultRecipeRepository.kt +++ b/Android/core/data/src/main/java/com/sundaegukbap/banchango/core/data/repository/DefaultRecipeRepository.kt @@ -2,7 +2,6 @@ package com.sundaegukbap.banchango.core.data.repository import com.sundaegukbap.banchango.Recipe import com.sundaegukbap.banchango.core.data.api.RecipeApi -import com.sundaegukbap.banchango.core.data.api.model.RecipeRecommendResponse import com.sundaegukbap.banchango.core.data.mapper.toData import com.sundaegukbap.banchango.core.data.repository.api.RecipeRepository import javax.inject.Inject @@ -23,4 +22,18 @@ internal class DefaultRecipeRepository @Inject constructor( } } } + + override suspend fun getRecipeDetail(id: Int): Result { + return runCatching { + val response = recipeApi.getRecipeDetail(1, id.toLong()) + if (response.isSuccessful) { + if (response.body() == null) { + throw IllegalStateException("Response body is null") + } + response.body()!!.toData() + } else { + throw IllegalStateException("Response is not successful") + } + } + } }