refactor: MemberController에서의 DTO 분리 및 MemberAPI에서의 변경 사항 적용

This commit is contained in:
이상진 2025-07-15 11:40:10 +09:00
parent 2225527bd3
commit 0180440a2f
2 changed files with 37 additions and 33 deletions

View File

@ -1,11 +1,11 @@
package roomescape.member.web
import io.swagger.v3.oas.annotations.media.Schema
import org.springframework.http.ResponseEntity
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController
import roomescape.common.dto.response.CommonApiResponse
import roomescape.member.business.MemberService
import roomescape.member.infrastructure.persistence.Member
import roomescape.common.dto.response.RoomescapeApiResponse
import roomescape.member.docs.MemberAPI
@RestController
class MemberController(
@ -13,36 +13,9 @@ class MemberController(
) : MemberAPI {
@GetMapping("/members")
override fun readAllMembers(): RoomescapeApiResponse<MembersResponse> {
val result: MembersResponse = memberService.readAllMembers()
override fun readAllMembers(): ResponseEntity<CommonApiResponse<MembersResponse>> {
val response: MembersResponse = memberService.readAllMembers()
return RoomescapeApiResponse.success(result)
return ResponseEntity.ok(CommonApiResponse(response))
}
}
@Schema(name = "회원 조회 응답", description = "회원 정보 조회 응답시 사용됩니다.")
data class MemberResponse(
@field:Schema(description = "회원의 고유 번호")
val id: Long,
@field:Schema(description = "회원의 이름")
val name: String
) {
companion object {
@JvmStatic
fun fromEntity(member: Member): MemberResponse {
return MemberResponse(member.id!!, member.name)
}
}
}
fun Member.toResponse(): MemberResponse = MemberResponse(
id = id!!,
name = name
)
@Schema(name = "회원 목록 조회 응답", description = "모든 회원의 정보 조회 응답시 사용됩니다.")
data class MembersResponse(
@field:Schema(description = "모든 회원의 ID 및 이름")
val members: List<MemberResponse>
)

View File

@ -0,0 +1,31 @@
package roomescape.member.web
import io.swagger.v3.oas.annotations.media.Schema
import roomescape.member.infrastructure.persistence.Member
fun Member.toResponse(): MemberResponse = MemberResponse(
id = id!!,
name = name
)
@Schema(name = "회원 조회 응답", description = "회원 정보 조회 응답시 사용됩니다.")
data class MemberResponse(
@field:Schema(description = "회원의 고유 번호")
val id: Long,
@field:Schema(description = "회원의 이름")
val name: String
) {
companion object {
@JvmStatic
fun fromEntity(member: Member): MemberResponse {
return MemberResponse(member.id!!, member.name)
}
}
}
@Schema(name = "회원 목록 조회 응답", description = "모든 회원의 정보 조회 응답시 사용됩니다.")
data class MembersResponse(
@field:Schema(description = "모든 회원의 ID 및 이름")
val members: List<MemberResponse>
)