generated from pricelees/issue-pr-template
refactor: 회원 컨트롤러 & DTO 코틀린 변환
This commit is contained in:
parent
4de0eb2cfc
commit
c563c61c17
@ -1,36 +1,48 @@
|
|||||||
package roomescape.member.web;
|
package roomescape.member.web
|
||||||
|
|
||||||
import org.springframework.http.HttpStatus;
|
import io.swagger.v3.oas.annotations.media.Schema
|
||||||
import org.springframework.web.bind.annotation.GetMapping;
|
import org.springframework.web.bind.annotation.GetMapping
|
||||||
import org.springframework.web.bind.annotation.ResponseStatus;
|
import org.springframework.web.bind.annotation.RestController
|
||||||
import org.springframework.web.bind.annotation.RestController;
|
import roomescape.member.business.MemberService
|
||||||
|
import roomescape.member.infrastructure.entity.Member
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import roomescape.system.dto.response.RoomEscapeApiResponse
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponse;
|
|
||||||
import io.swagger.v3.oas.annotations.responses.ApiResponses;
|
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
|
||||||
import roomescape.member.business.MemberService;
|
|
||||||
import roomescape.system.auth.annotation.Admin;
|
|
||||||
import roomescape.system.dto.response.RoomEscapeApiResponse;
|
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@Tag(name = "2. 회원 API", description = "회원 정보를 관리할 때 사용합니다.")
|
class MemberController(
|
||||||
public class MemberController {
|
private val memberService: MemberService
|
||||||
|
) : MemberAPI {
|
||||||
|
|
||||||
private final MemberService memberService;
|
|
||||||
|
|
||||||
public MemberController(MemberService memberService) {
|
|
||||||
this.memberService = memberService;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Admin
|
|
||||||
@GetMapping("/members")
|
@GetMapping("/members")
|
||||||
@ResponseStatus(HttpStatus.OK)
|
override fun readAllMembers(): RoomEscapeApiResponse<MembersResponse> {
|
||||||
@Operation(summary = "모든 회원 조회", tags = "관리자 로그인이 필요한 API")
|
val result: MembersResponse = memberService.readAllMembers()
|
||||||
@ApiResponses({
|
|
||||||
@ApiResponse(responseCode = "200", description = "성공", useReturnTypeSchema = true)
|
return RoomEscapeApiResponse.success(result)
|
||||||
})
|
|
||||||
public RoomEscapeApiResponse<MembersResponse> getAllMembers() {
|
|
||||||
return RoomEscapeApiResponse.success(memberService.findAllMembers());
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@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>
|
||||||
|
)
|
||||||
|
|||||||
@ -1,14 +0,0 @@
|
|||||||
package roomescape.member.web;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
import roomescape.member.infrastructure.entity.Member;
|
|
||||||
|
|
||||||
@Schema(name = "회원 조회 응답", description = "회원 정보 조회 응답시 사용됩니다.")
|
|
||||||
public record MemberResponse(
|
|
||||||
@Schema(description = "회원 번호. 회원을 식별할 때 사용합니다.") Long id,
|
|
||||||
@Schema(description = "회원의 이름") String name
|
|
||||||
) {
|
|
||||||
public static MemberResponse fromEntity(Member member) {
|
|
||||||
return new MemberResponse(member.getId(), member.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,11 +0,0 @@
|
|||||||
package roomescape.member.web;
|
|
||||||
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.media.Schema;
|
|
||||||
|
|
||||||
@Schema(name = "회원 목록 조회 응답", description = "모든 회원의 정보 조회 응답시 사용됩니다.")
|
|
||||||
public record MembersResponse(
|
|
||||||
@Schema(description = "모든 회원의 ID 및 이름") List<MemberResponse> members
|
|
||||||
) {
|
|
||||||
}
|
|
||||||
Loading…
x
Reference in New Issue
Block a user