Skip to content

Commit cafa85e

Browse files
committed
Refactor MemberService to return DTO in getMemberBy.
Updated `MemberService` to return `MemberResponse` DTO instead of the `Member` entity, encapsulating domain data. Introduced the `MemberResponse` class to map entity fields, and adjusted the controller to reflect the DTO usage. This improves separation of concerns and avoids exposing domain entities directly.
1 parent afa3267 commit cafa85e

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package com.mpc.springboot.member.application.dto;
2+
3+
import com.mpc.springboot.member.domain.entity.Member;
4+
import com.mpc.springboot.member.domain.vo.MemberCode;
5+
import com.mpc.springboot.member.domain.vo.MemberName;
6+
import lombok.Getter;
7+
import lombok.RequiredArgsConstructor;
8+
9+
@Getter
10+
@RequiredArgsConstructor
11+
public class MemberResponse {
12+
private final MemberCode code;
13+
private final MemberName name;
14+
15+
public static MemberResponse of(Member member) {
16+
return new MemberResponse(member.getCode(), member.getName());
17+
}
18+
}

spring-boot/src/main/java/com/mpc/springboot/member/application/service/MemberService.java

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import jakarta.transaction.Transactional;
44

55
import org.springframework.stereotype.Service;
6+
import com.mpc.springboot.member.application.dto.MemberResponse;
67
import com.mpc.springboot.member.domain.entity.Member;
78
import com.mpc.springboot.member.domain.exception.MemberNotFoundException;
89
import com.mpc.springboot.member.domain.repository.MemberRepository;
@@ -15,9 +16,10 @@ public class MemberService {
1516

1617
private final MemberRepository memberRepository;
1718

18-
public Member getMemberBy(MemberCode code) {
19-
return memberRepository.findMemberBy(code)
20-
.orElseThrow(MemberNotFoundException::new);
19+
public MemberResponse getMemberBy(MemberCode code) {
20+
Member member = memberRepository.findMemberBy(code)
21+
.orElseThrow(MemberNotFoundException::new);
22+
return MemberResponse.of(member);
2123
}
2224

2325
@Transactional

spring-boot/src/main/java/com/mpc/springboot/member/presentation/controller/MemberRestController.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import org.springframework.http.ResponseEntity;
44
import org.springframework.web.bind.annotation.*;
5+
import com.mpc.springboot.member.application.dto.MemberResponse;
56
import com.mpc.springboot.member.application.service.MemberService;
67
import com.mpc.springboot.member.domain.entity.Member;
78
import com.mpc.springboot.member.domain.vo.MemberCode;
@@ -15,7 +16,7 @@ public class MemberRestController {
1516
private final MemberService memberService;
1617

1718
@GetMapping("/{code}")
18-
public ResponseEntity<Member> getMemberBy(@PathVariable MemberCode code) {
19+
public ResponseEntity<MemberResponse> getMemberBy(@PathVariable MemberCode code) {
1920
return ResponseEntity.ok(memberService.getMemberBy(code));
2021
}
2122

0 commit comments

Comments
 (0)