diff --git a/core/data/src/main/java/com/peonlee/data/product/DefaultProductRepository.kt b/core/data/src/main/java/com/peonlee/data/product/DefaultProductRepository.kt index 315db27f..f088af2c 100644 --- a/core/data/src/main/java/com/peonlee/data/product/DefaultProductRepository.kt +++ b/core/data/src/main/java/com/peonlee/data/product/DefaultProductRepository.kt @@ -14,4 +14,16 @@ class DefaultProductRepository @Inject constructor( override suspend fun searchProduct(searchRequest: ProductSearchRequest) = setResult { productApi.searchProduct(searchRequest) } + + override suspend fun likeProduct(productId: Int) = setResult { + productApi.likeProduct(productId) + } + + override suspend fun dislikeProduct(productId: Int) = setResult { + productApi.dislikeProduct(productId) + } + + override suspend fun cancelLikeProduct(productId: Int) = setResult { + productApi.cancelLikeProductDetail(productId) + } } diff --git a/core/data/src/main/java/com/peonlee/data/product/ProductApi.kt b/core/data/src/main/java/com/peonlee/data/product/ProductApi.kt index e8de6e62..1dd5215c 100644 --- a/core/data/src/main/java/com/peonlee/data/product/ProductApi.kt +++ b/core/data/src/main/java/com/peonlee/data/product/ProductApi.kt @@ -4,6 +4,7 @@ import com.peonlee.data.model.ProductDetail import com.peonlee.data.model.ProductSearch import com.peonlee.data.model.request.ProductSearchRequest import retrofit2.http.GET +import retrofit2.http.POST import retrofit2.http.Path import retrofit2.http.Query @@ -13,6 +14,21 @@ interface ProductApi { @Path("productId") productId: Int ): ProductDetail + @POST("v1/product/{productId}/rate/like") + suspend fun likeProduct( + @Path("productId") productId: Int + ) + + @GET("v1/product/{productId}/rate/dislike") + suspend fun dislikeProduct( + @Path("productId") productId: Int + ) + + @GET("v1/product/{productId}/rate/cancel") + suspend fun cancelLikeProductDetail( + @Path("productId") productId: Int + ) + @GET("v1/product/search") suspend fun searchProduct( @Query("query") request: ProductSearchRequest diff --git a/core/data/src/main/java/com/peonlee/data/product/ProductRepository.kt b/core/data/src/main/java/com/peonlee/data/product/ProductRepository.kt index 892fc1d2..a1450c44 100644 --- a/core/data/src/main/java/com/peonlee/data/product/ProductRepository.kt +++ b/core/data/src/main/java/com/peonlee/data/product/ProductRepository.kt @@ -8,4 +8,8 @@ import com.peonlee.data.model.request.ProductSearchRequest interface ProductRepository { suspend fun getProductDetail(productId: Int): Result suspend fun searchProduct(searchRequest: ProductSearchRequest): Result + + suspend fun likeProduct(productId: Int): Result + suspend fun dislikeProduct(productId: Int): Result + suspend fun cancelLikeProduct(productId: Int): Result }