Skip to content

Commit

Permalink
ROFO-193 enum class description 을 사용하도록 변경
Browse files Browse the repository at this point in the history
  • Loading branch information
Unagi-zoso committed Sep 1, 2024
1 parent 1f4586e commit afb6e7c
Show file tree
Hide file tree
Showing 4 changed files with 18 additions and 8 deletions.
2 changes: 2 additions & 0 deletions src/main/kotlin/kr/weit/roadyfoody/badge/domain/Badge.kt
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,7 @@ enum class Badge(
prevBadge: Badge,
newBadge: Badge,
): Boolean = prevBadge > newBadge

fun fromDescriptionOrNull(description: String): Badge? = entries.find { it.description == description }
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -101,8 +101,9 @@ class FoodSpotsController(
@RequestParam(required = false, defaultValue = "LATEST")
sortType: ReviewSortType,
@RequestParam(required = false)
badge: Badge?,
): SliceResponse<FoodSpotsReviewResponse> = foodSpotsQueryService.getFoodSpotsReview(foodSpotsId, size, lastId, sortType, badge)
badge: String?,
): SliceResponse<FoodSpotsReviewResponse> =
foodSpotsQueryService.getFoodSpotsReview(foodSpotsId, size, lastId, sortType, badge?.let { Badge.fromDescriptionOrNull(it) })

@GetMapping("/{foodSpotsId}")
override fun getFoodSpotsDetail(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package kr.weit.roadyfoody.foodSpots.presentation.spec

import io.swagger.v3.oas.annotations.Operation
import io.swagger.v3.oas.annotations.Parameter
import io.swagger.v3.oas.annotations.enums.ParameterIn
import io.swagger.v3.oas.annotations.media.Content
import io.swagger.v3.oas.annotations.media.Schema
import io.swagger.v3.oas.annotations.responses.ApiResponse
Expand All @@ -10,7 +11,6 @@ import jakarta.validation.Valid
import jakarta.validation.constraints.Positive
import jakarta.validation.constraints.Size
import kr.weit.roadyfoody.auth.security.LoginUser
import kr.weit.roadyfoody.badge.domain.Badge
import kr.weit.roadyfoody.common.dto.SliceResponse
import kr.weit.roadyfoody.common.exception.ErrorCode
import kr.weit.roadyfoody.foodSpots.application.dto.FoodSpotsDetailResponse
Expand Down Expand Up @@ -168,6 +168,14 @@ interface FoodSpotsControllerSpec {

@Operation(
description = "음식점의 리뷰 리스트 조회 API",
parameters = [
Parameter(
name = "badge",
description = "사용자 배지 필터",
`in` = ParameterIn.QUERY,
schema = Schema(type = "string", allowableValues = ["초심자", "중수", "고수", "초고수"]),
),
],
responses = [
ApiResponse(
responseCode = "200",
Expand Down Expand Up @@ -204,7 +212,7 @@ interface FoodSpotsControllerSpec {
@RequestParam(defaultValue = "LATEST", required = false)
sortType: ReviewSortType,
@RequestParam(required = false)
badge: Badge?,
badge: String?,
): SliceResponse<FoodSpotsReviewResponse>

@Operation(
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
package kr.weit.roadyfoody.user.application.dto

import io.swagger.v3.oas.annotations.media.Schema
import kr.weit.roadyfoody.badge.domain.Badge
import kr.weit.roadyfoody.review.application.dto.ReviewPhotoResponse
import kr.weit.roadyfoody.review.domain.FoodSpotsReview
import kr.weit.roadyfoody.user.domain.User
Expand All @@ -12,16 +11,16 @@ data class ReviewerInfoResponse(
val id: Long,
@Schema(description = "유저 닉네임", example = "TestNickname")
val nickname: String,
@Schema(description = "유저 뱃지", example = "BEGINNER")
val badge: Badge,
@Schema(description = "유저 뱃지", example = "초심자")
val badge: String,
@Schema(description = "프로필 URL")
val url: String?,
) {
companion object {
fun of(
user: User,
url: String?,
) = ReviewerInfoResponse(user.id, user.profile.nickname, user.badge, url)
) = ReviewerInfoResponse(user.id, user.profile.nickname, user.badge.description, url)
}
}

Expand Down

0 comments on commit afb6e7c

Please sign in to comment.