refactor: member 패키지 내 DTO 네이밍 통일 및 불필요하게 느껴지는 Schema 제거

This commit is contained in:
이상진 2025-07-22 14:32:52 +09:00
parent a67111105b
commit 9681de5e88
6 changed files with 21 additions and 24 deletions

View File

@ -8,17 +8,17 @@ import roomescape.common.exception.ErrorType
import roomescape.common.exception.RoomescapeException
import roomescape.member.infrastructure.persistence.MemberEntity
import roomescape.member.infrastructure.persistence.MemberRepository
import roomescape.member.web.MembersResponse
import roomescape.member.web.toResponse
import roomescape.member.web.MemberRetrieveListResponse
import roomescape.member.web.toRetrieveResponse
@Service
@Transactional(readOnly = true)
class MemberService(
private val memberRepository: MemberRepository
) {
fun findAll(): MembersResponse = MembersResponse(
fun findAll(): MemberRetrieveListResponse = MemberRetrieveListResponse(
memberRepository.findAll()
.map { it.toResponse() }
.map { it.toRetrieveResponse() }
.toList()
)

View File

@ -7,7 +7,7 @@ import io.swagger.v3.oas.annotations.tags.Tag
import org.springframework.http.ResponseEntity
import roomescape.auth.web.support.Admin
import roomescape.common.dto.response.CommonApiResponse
import roomescape.member.web.MembersResponse
import roomescape.member.web.MemberRetrieveListResponse
@Tag(name = "2. 회원 API", description = "회원 정보를 관리할 때 사용합니다.")
interface MemberAPI {
@ -20,5 +20,5 @@ interface MemberAPI {
useReturnTypeSchema = true
)
)
fun findAll(): ResponseEntity<CommonApiResponse<MembersResponse>>
fun findAll(): ResponseEntity<CommonApiResponse<MemberRetrieveListResponse>>
}

View File

@ -13,8 +13,8 @@ class MemberController(
) : MemberAPI {
@GetMapping("/members")
override fun findAll(): ResponseEntity<CommonApiResponse<MembersResponse>> {
val response: MembersResponse = memberService.findAll()
override fun findAll(): ResponseEntity<CommonApiResponse<MemberRetrieveListResponse>> {
val response: MemberRetrieveListResponse = memberService.findAll()
return ResponseEntity.ok(CommonApiResponse(response))
}

View File

@ -3,22 +3,19 @@ package roomescape.member.web
import io.swagger.v3.oas.annotations.media.Schema
import roomescape.member.infrastructure.persistence.MemberEntity
fun MemberEntity.toResponse(): MemberResponse = MemberResponse(
fun MemberEntity.toRetrieveResponse(): MemberRetrieveResponse = MemberRetrieveResponse(
id = id!!,
name = name
)
@Schema(name = "회원 조회 응답", description = "회원 정보 조회 응답시 사용됩니다.")
data class MemberResponse(
@field:Schema(description = "회원의 고유 번호")
data class MemberRetrieveResponse(
@field:Schema(description = "회원 식별자")
val id: Long,
@field:Schema(description = "회원 이름")
@field:Schema(description = "회원 이름")
val name: String
)
@Schema(name = "회원 목록 조회 응답", description = "모든 회원의 정보 조회 응답시 사용됩니다.")
data class MembersResponse(
@field:Schema(description = "모든 회원의 ID 및 이름")
val members: List<MemberResponse>
data class MemberRetrieveListResponse(
val members: List<MemberRetrieveResponse>
)

View File

@ -2,8 +2,8 @@ package roomescape.reservation.web
import com.fasterxml.jackson.annotation.JsonProperty
import io.swagger.v3.oas.annotations.media.Schema
import roomescape.member.web.MemberResponse
import roomescape.member.web.toResponse
import roomescape.member.web.MemberRetrieveResponse
import roomescape.member.web.toRetrieveResponse
import roomescape.reservation.infrastructure.persistence.ReservationEntity
import roomescape.reservation.infrastructure.persistence.ReservationStatus
import roomescape.theme.web.ThemeResponse
@ -55,7 +55,7 @@ data class ReservationResponse(
@field:Schema(description = "예약한 회원 정보")
@field:JsonProperty("member")
val member: MemberResponse,
val member: MemberRetrieveResponse,
@field:Schema(description = "예약 시간 정보")
@field:JsonProperty("time")
@ -72,7 +72,7 @@ data class ReservationResponse(
fun ReservationEntity.toCreateResponse(): ReservationResponse = ReservationResponse(
id = this.id!!,
date = this.date,
member = this.member.toResponse(),
member = this.member.toRetrieveResponse(),
time = this.time.toCreateResponse(),
theme = this.theme.toResponse(),
status = this.reservationStatus

View File

@ -8,7 +8,7 @@ import org.springframework.beans.factory.annotation.Autowired
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest
import org.springframework.test.web.servlet.MockMvc
import roomescape.member.web.MemberController
import roomescape.member.web.MembersResponse
import roomescape.member.web.MemberRetrieveListResponse
import roomescape.util.MemberFixture
import roomescape.util.RoomescapeApiTest
import kotlin.random.Random
@ -40,9 +40,9 @@ class MemberControllerTest(
status { isOk() }
}.andReturn().response.contentAsString
val response: MembersResponse = readValue(
val response: MemberRetrieveListResponse = readValue(
responseJson = result,
valueType = MembersResponse::class.java
valueType = MemberRetrieveListResponse::class.java
)
assertSoftly(response.members) {