Skip to content

Commit abbbf27

Browse files
committed
[NDGL-101] feat: 여행 템플릿 검색 API 구현
1 parent 139b9ac commit abbbf27

3 files changed

Lines changed: 25 additions & 1 deletion

File tree

data/travel/src/main/java/com/yapp/ndgl/data/travel/api/TravelTemplateApi.kt

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package com.yapp.ndgl.data.travel.api
33
import com.yapp.ndgl.data.core.model.BaseResponse
44
import com.yapp.ndgl.data.travel.model.PopularTravelTemplates
55
import com.yapp.ndgl.data.travel.model.RecommendTravelTemplates
6+
import com.yapp.ndgl.data.travel.model.SearchTravelTemplates
67
import com.yapp.ndgl.data.travel.model.TravelTemplateContentInfo
78
import com.yapp.ndgl.data.travel.model.TravelTemplateItinerary
89
import retrofit2.http.GET
@@ -30,4 +31,11 @@ interface TravelTemplateApi {
3031
suspend fun getTravelTemplateContentInfo(
3132
@Path("id") id: Long,
3233
): BaseResponse<TravelTemplateContentInfo>
34+
35+
@GET("/api/v1/travel-templates/search")
36+
suspend fun searchTravelTemplates(
37+
@Query("keyword") keyword: String,
38+
@Query("page") page: Int? = null,
39+
@Query("size") size: Int? = null,
40+
): BaseResponse<SearchTravelTemplates>
3341
}
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package com.yapp.ndgl.data.travel.model
2+
3+
import kotlinx.serialization.Serializable
4+
5+
@Serializable
6+
data class SearchTravelTemplates(
7+
val content: List<TravelTemplateSummary>,
8+
val hasNext: Boolean,
9+
)

data/travel/src/main/java/com/yapp/ndgl/data/travel/repository/TravelTemplateRepository.kt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import com.yapp.ndgl.data.core.model.getData
44
import com.yapp.ndgl.data.travel.api.TravelTemplateApi
55
import com.yapp.ndgl.data.travel.model.PopularTravelTemplates
66
import com.yapp.ndgl.data.travel.model.RecommendTravelTemplates
7+
import com.yapp.ndgl.data.travel.model.SearchTravelTemplates
78
import com.yapp.ndgl.data.travel.model.TravelTemplateContentInfo
89
import com.yapp.ndgl.data.travel.model.TravelTemplateItinerary
910
import javax.inject.Inject
@@ -18,7 +19,9 @@ class TravelTemplateRepository @Inject constructor(
1819
}
1920

2021
suspend fun getPopularTravelTemplates(travelProgramId: Long): PopularTravelTemplates {
21-
return travelTemplateApi.getPopularTravelTemplates(travelProgramId = travelProgramId).getData()
22+
return travelTemplateApi.getPopularTravelTemplates(
23+
travelProgramId = travelProgramId,
24+
).getData()
2225
}
2326

2427
suspend fun getRecommendTravelTemplates(): RecommendTravelTemplates {
@@ -32,4 +35,8 @@ class TravelTemplateRepository @Inject constructor(
3235
suspend fun getTravelTemplateContentInfo(travelId: Long): TravelTemplateContentInfo {
3336
return travelTemplateApi.getTravelTemplateContentInfo(id = travelId).getData()
3437
}
38+
39+
suspend fun searchTravelTemplates(keyword: String): SearchTravelTemplates {
40+
return travelTemplateApi.searchTravelTemplates(keyword = keyword).getData()
41+
}
3542
}

0 commit comments

Comments
 (0)