-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
56c2225
commit 12ce7b9
Showing
12 changed files
with
351 additions
and
0 deletions.
There are no files selected for viewing
31 changes: 31 additions & 0 deletions
31
...main/kotlin/com/restaurant/be/restaurant/presentation/controller/GetCategoryController.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
package com.restaurant.be.restaurant.presentation.controller | ||
|
||
import com.restaurant.be.common.response.CommonResponse | ||
import com.restaurant.be.restaurant.presentation.dto.GetCategoryResponse | ||
import io.swagger.annotations.Api | ||
import io.swagger.annotations.ApiOperation | ||
import io.swagger.v3.oas.annotations.media.Content | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
import io.swagger.v3.oas.annotations.responses.ApiResponse | ||
import org.springframework.security.access.prepost.PreAuthorize | ||
import org.springframework.web.bind.annotation.GetMapping | ||
import org.springframework.web.bind.annotation.RequestMapping | ||
import org.springframework.web.bind.annotation.RestController | ||
|
||
@Api(tags = ["02. Restaurant Info"], description = "음식점 서비스") | ||
@RestController | ||
@RequestMapping("/api/v1/restaurants/category") | ||
class GetCategoryController { | ||
|
||
@GetMapping | ||
@PreAuthorize("hasRole('USER')") | ||
@ApiOperation(value = "카테고리 전체 조회 API") | ||
@ApiResponse( | ||
responseCode = "200", | ||
description = "성공", | ||
content = [Content(schema = Schema(implementation = GetCategoryResponse::class))] | ||
) | ||
fun getCategory(): CommonResponse<GetCategoryResponse> { | ||
return CommonResponse.success() | ||
} | ||
} |
32 changes: 32 additions & 0 deletions
32
...ain/kotlin/com/restaurant/be/restaurant/presentation/controller/GetKingoPassController.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
package com.restaurant.be.restaurant.presentation.controller | ||
|
||
import com.restaurant.be.common.response.CommonResponse | ||
import com.restaurant.be.restaurant.presentation.dto.GetKingoPassResponse | ||
import io.swagger.annotations.Api | ||
import io.swagger.annotations.ApiOperation | ||
import io.swagger.v3.oas.annotations.media.Content | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
import io.swagger.v3.oas.annotations.responses.ApiResponse | ||
import org.springframework.security.access.prepost.PreAuthorize | ||
import org.springframework.web.bind.annotation.GetMapping | ||
import org.springframework.web.bind.annotation.RequestMapping | ||
import org.springframework.web.bind.annotation.RestController | ||
import java.security.Principal | ||
|
||
@Api(tags = ["02. Restaurant Info"], description = "음식점 서비스") | ||
@RestController | ||
@RequestMapping("/v1/restaurants/kingo-pass") | ||
class GetKingoPassController { | ||
|
||
@GetMapping | ||
@PreAuthorize("hasRole('USER')") | ||
@ApiOperation(value = "성대 킹고 패스 음식점 리스트 조회 API") | ||
@ApiResponse( | ||
responseCode = "200", | ||
description = "성공", | ||
content = [Content(schema = Schema(implementation = GetKingoPassResponse::class))] | ||
) | ||
fun getRecentHighReview(principal: Principal): CommonResponse<GetKingoPassResponse> { | ||
return CommonResponse.success() | ||
} | ||
} |
56 changes: 56 additions & 0 deletions
56
...in/kotlin/com/restaurant/be/restaurant/presentation/controller/GetRestaurantController.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
package com.restaurant.be.restaurant.presentation.controller | ||
|
||
import com.restaurant.be.common.response.CommonResponse | ||
import com.restaurant.be.restaurant.presentation.dto.GetRestaurantRequest | ||
import com.restaurant.be.restaurant.presentation.dto.GetRestaurantResponse | ||
import com.restaurant.be.restaurant.presentation.dto.GetRestaurantsResponse | ||
import io.swagger.annotations.Api | ||
import io.swagger.annotations.ApiOperation | ||
import io.swagger.v3.oas.annotations.media.Content | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
import io.swagger.v3.oas.annotations.responses.ApiResponse | ||
import org.springframework.data.domain.Pageable | ||
import org.springframework.security.access.prepost.PreAuthorize | ||
import org.springframework.web.bind.annotation.GetMapping | ||
import org.springframework.web.bind.annotation.ModelAttribute | ||
import org.springframework.web.bind.annotation.PathVariable | ||
import org.springframework.web.bind.annotation.RequestMapping | ||
import org.springframework.web.bind.annotation.RestController | ||
import java.security.Principal | ||
|
||
@Api(tags = ["02. Restaurant Info"], description = "음식점 서비스") | ||
@RestController | ||
@RequestMapping("/api/v1/restaurants") | ||
class GetRestaurantController { | ||
|
||
@GetMapping | ||
@PreAuthorize("hasRole('USER')") | ||
@ApiOperation(value = "음식점 조회 API") | ||
@ApiResponse( | ||
responseCode = "200", | ||
description = "성공", | ||
content = [Content(schema = Schema(implementation = GetRestaurantsResponse::class))] | ||
) | ||
fun getRestaurants( | ||
principal: Principal, | ||
@ModelAttribute request: GetRestaurantRequest, | ||
pageable: Pageable | ||
): CommonResponse<GetRestaurantsResponse> { | ||
return CommonResponse.success() | ||
} | ||
|
||
@GetMapping("/{restaurantId}") | ||
@PreAuthorize("hasRole('USER')") | ||
@ApiOperation(value = "음식점 상세 조회 API") | ||
@ApiResponse( | ||
responseCode = "200", | ||
description = "성공", | ||
content = [Content(schema = Schema(implementation = GetRestaurantResponse::class))] | ||
) | ||
fun getRestaurant( | ||
principal: Principal, | ||
@PathVariable restaurantId: String | ||
): CommonResponse<GetRestaurantResponse> { | ||
return CommonResponse.success() | ||
} | ||
} |
59 changes: 59 additions & 0 deletions
59
...n/kotlin/com/restaurant/be/restaurant/presentation/controller/LikeRestaurantController.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
package com.restaurant.be.restaurant.presentation.controller | ||
|
||
import com.restaurant.be.common.response.CommonResponse | ||
import com.restaurant.be.restaurant.presentation.dto.GetLikeRestaurantsResponse | ||
import com.restaurant.be.restaurant.presentation.dto.LikeRestaurantRequest | ||
import com.restaurant.be.restaurant.presentation.dto.LikeRestaurantResponse | ||
import io.swagger.annotations.Api | ||
import io.swagger.annotations.ApiOperation | ||
import io.swagger.v3.oas.annotations.media.Content | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
import io.swagger.v3.oas.annotations.responses.ApiResponse | ||
import org.springframework.data.domain.Pageable | ||
import org.springframework.security.access.prepost.PreAuthorize | ||
import org.springframework.web.bind.annotation.GetMapping | ||
import org.springframework.web.bind.annotation.PathVariable | ||
import org.springframework.web.bind.annotation.PostMapping | ||
import org.springframework.web.bind.annotation.RequestBody | ||
import org.springframework.web.bind.annotation.RequestMapping | ||
import org.springframework.web.bind.annotation.RestController | ||
import java.security.Principal | ||
import javax.validation.Valid | ||
|
||
@Api(tags = ["02. Restaurant Info"], description = "음식점 서비스") | ||
@RestController | ||
@RequestMapping("/api/v1/restaurants") | ||
class LikeRestaurantController { | ||
|
||
@GetMapping("/like") | ||
@PreAuthorize("hasRole('USER')") | ||
@ApiOperation(value = "좋아요한 음식점 리스트 조회 API") | ||
@ApiResponse( | ||
responseCode = "200", | ||
description = "성공", | ||
content = [Content(schema = Schema(implementation = GetLikeRestaurantsResponse::class))] | ||
) | ||
fun getLikeRestaurants( | ||
principal: Principal, | ||
pageable: Pageable | ||
): CommonResponse<GetLikeRestaurantsResponse> { | ||
return CommonResponse.success() | ||
} | ||
|
||
@PostMapping("/{restaurantId}/like") | ||
@PreAuthorize("hasRole('USER')") | ||
@ApiOperation(value = "음식점 좋아요 API") | ||
@ApiResponse( | ||
responseCode = "200", | ||
description = "성공", | ||
content = [Content(schema = Schema(implementation = LikeRestaurantResponse::class))] | ||
) | ||
fun likeRestaurant( | ||
principal: Principal, | ||
@PathVariable restaurantId: String, | ||
@RequestBody @Valid | ||
request: LikeRestaurantRequest | ||
): CommonResponse<LikeRestaurantResponse> { | ||
return CommonResponse.success() | ||
} | ||
} |
34 changes: 34 additions & 0 deletions
34
...lin/com/restaurant/be/restaurant/presentation/controller/RecommendRestaurantController.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
package com.restaurant.be.restaurant.presentation.controller | ||
|
||
import com.restaurant.be.common.response.CommonResponse | ||
import com.restaurant.be.restaurant.presentation.dto.RecommendRestaurantResponse | ||
import io.swagger.annotations.Api | ||
import io.swagger.annotations.ApiOperation | ||
import io.swagger.v3.oas.annotations.media.Content | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
import io.swagger.v3.oas.annotations.responses.ApiResponse | ||
import org.springframework.security.access.prepost.PreAuthorize | ||
import org.springframework.web.bind.annotation.GetMapping | ||
import org.springframework.web.bind.annotation.RequestMapping | ||
import org.springframework.web.bind.annotation.RestController | ||
import java.security.Principal | ||
|
||
@Api(tags = ["02. Restaurant Info"], description = "음식점 서비스") | ||
@RestController | ||
@RequestMapping("/api/v1/restaurants") | ||
class RecommendRestaurantController { | ||
|
||
@GetMapping("recommend") | ||
@PreAuthorize("hasRole('USER')") | ||
@ApiOperation(value = "gpt 기반 추천 음식점 리스트 조회 API") | ||
@ApiResponse( | ||
responseCode = "200", | ||
description = "성공", | ||
content = [Content(schema = Schema(implementation = RecommendRestaurantResponse::class))] | ||
) | ||
fun getRecommendRestaurants( | ||
principal: Principal | ||
): CommonResponse<RecommendRestaurantResponse> { | ||
return CommonResponse.success() | ||
} | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/kotlin/com/restaurant/be/restaurant/presentation/dto/GetCategoryDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
@file:Suppress("ktlint", "MatchingDeclarationName") | ||
|
||
package com.restaurant.be.restaurant.presentation.dto | ||
|
||
import com.restaurant.be.restaurant.presentation.dto.common.CategoryDto | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
|
||
data class GetCategoryResponse( | ||
@Schema(description = "카테고리 리스트") | ||
val categories: List<CategoryDto> | ||
) |
11 changes: 11 additions & 0 deletions
11
src/main/kotlin/com/restaurant/be/restaurant/presentation/dto/GetKingoPassDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
@file:Suppress("ktlint", "MatchingDeclarationName") | ||
|
||
package com.restaurant.be.restaurant.presentation.dto | ||
|
||
import com.restaurant.be.restaurant.presentation.dto.common.RestaurantDto | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
|
||
data class GetKingoPassResponse( | ||
@Schema(description = "킹고패스 식당 리스트") | ||
val restaurants: List<RestaurantDto> | ||
) |
28 changes: 28 additions & 0 deletions
28
src/main/kotlin/com/restaurant/be/restaurant/presentation/dto/GetRestaurantDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
package com.restaurant.be.restaurant.presentation.dto | ||
|
||
import com.restaurant.be.restaurant.presentation.dto.common.RestaurantDto | ||
import io.swagger.annotations.ApiModelProperty | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
|
||
data class GetRestaurantRequest( | ||
@ApiModelProperty(value = "식당 이름 검색", example = "맛집", required = false) | ||
val query: String, | ||
@ApiModelProperty(value = "카테고리 필터", example = "[1, 2, 3]", required = false) | ||
val categoryIds: List<Long>, | ||
@ApiModelProperty(value = "킹고패스 할인 여부 필터", example = "false", required = false) | ||
val discountForSkku: Boolean, | ||
@ApiModelProperty(value = "평점 필터", example = "4.5", required = false) | ||
val rating: Long, | ||
@ApiModelProperty(value = "리뷰 개수 필터", example = "100", required = false) | ||
val reviewCount: Long | ||
) | ||
|
||
data class GetRestaurantsResponse( | ||
@Schema(description = "식당 리스트") | ||
val restaurants: List<RestaurantDto> | ||
) | ||
|
||
data class GetRestaurantResponse( | ||
@Schema(description = "식당 정보") | ||
val restaurant: RestaurantDto | ||
) |
24 changes: 24 additions & 0 deletions
24
src/main/kotlin/com/restaurant/be/restaurant/presentation/dto/LikeRestaurantDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,24 @@ | ||
package com.restaurant.be.restaurant.presentation.dto | ||
|
||
import com.restaurant.be.restaurant.presentation.dto.common.RestaurantDto | ||
import io.swagger.annotations.ApiModelProperty | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
|
||
data class GetLikeRestaurantsResponse( | ||
@Schema(description = "좋아요한 식당 리스트") | ||
val restaurants: List<RestaurantDto> | ||
) | ||
|
||
data class LikeRestaurantRequest( | ||
@ApiModelProperty(value = "현재 좋아요 했는지 여부", example = "LIKE", required = true) | ||
val status: LikeRestaurantStatus | ||
) | ||
data class LikeRestaurantResponse( | ||
@Schema(description = "좋아요한 식당 정보") | ||
val restaurant: RestaurantDto | ||
) | ||
|
||
enum class LikeRestaurantStatus { | ||
LIKE, | ||
UNLIKE | ||
} |
11 changes: 11 additions & 0 deletions
11
src/main/kotlin/com/restaurant/be/restaurant/presentation/dto/RecommendRestaurantDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
@file:Suppress("ktlint", "MatchingDeclarationName") | ||
|
||
package com.restaurant.be.restaurant.presentation.dto | ||
|
||
import com.restaurant.be.restaurant.presentation.dto.common.RestaurantDto | ||
import io.swagger.v3.oas.annotations.media.Schema | ||
|
||
data class RecommendRestaurantResponse( | ||
@Schema(description = "gpt기반 추천 식당 리스트") | ||
val restaurants: List<RestaurantDto> | ||
) |
10 changes: 10 additions & 0 deletions
10
src/main/kotlin/com/restaurant/be/restaurant/presentation/dto/common/CategoryDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
package com.restaurant.be.restaurant.presentation.dto.common | ||
|
||
import io.swagger.v3.oas.annotations.media.Schema | ||
|
||
data class CategoryDto( | ||
@Schema(description = "카테고리 id") | ||
val id: Long, | ||
@Schema(description = "카테고리 이름") | ||
val name: String | ||
) |
44 changes: 44 additions & 0 deletions
44
src/main/kotlin/com/restaurant/be/restaurant/presentation/dto/common/RestaurantDto.kt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
package com.restaurant.be.restaurant.presentation.dto.common | ||
|
||
import io.swagger.v3.oas.annotations.media.Schema | ||
|
||
data class RestaurantDto( | ||
@Schema(description = "식당 id") | ||
val id: Long, | ||
@Schema(description = "식당 대표 이미지 URL") | ||
val representativeImageUrl: String, | ||
@Schema(description = "식당 이름") | ||
val name: String, | ||
@Schema(description = "식당 평점 평균") | ||
val ratingAvg: Double, | ||
@Schema(description = "식당 리뷰 수") | ||
val reviewCount: Long, | ||
@Schema(description = "식당 좋아요 수") | ||
val likeCount: Long, | ||
@Schema(description = "식당 카테고리") | ||
val category: String, | ||
@Schema(description = "식당 대표 메뉴") | ||
val representativeMenu: String, | ||
@Schema(description = "식당 영업 시작 시간") | ||
val operatingStartTime: String, | ||
@Schema(description = "식당 영업 종료 시간") | ||
val operatingEndTime: String, | ||
@Schema(description = "식당 대표 리뷰 내용") | ||
val representativeReviewContent: String, | ||
@Schema(description = "식당 좋아요 여부(로그인한 유저)") | ||
val isLike: Boolean, | ||
@Schema(description = "식당 할인 여부") | ||
val isDiscountForSkku: Boolean, | ||
@Schema(description = "식당 할인 내용") | ||
val discountContent: String, | ||
|
||
@Schema(description = "식당 상세 정보") | ||
val detailInfo: RestaurantDetailDto | ||
) | ||
|
||
data class RestaurantDetailDto( | ||
@Schema(description = "식당 전화번호") | ||
val contactNumber: String, | ||
@Schema(description = "식당 주소") | ||
val address: String | ||
) |