From 78a8a2cbf97eb5e1879c6ac06f5514f76ec2175e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=AF=BC=EA=B2=B8?= Date: Thu, 26 Sep 2024 16:12:19 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=ED=98=84=EC=9E=AC=20=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=ED=95=9C=20=ED=9A=8C=EC=9B=90=EC=9D=84=20=EC=82=AD?= =?UTF-8?q?=EC=A0=9C=ED=95=98=EB=8A=94=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC?= =?UTF-8?q?=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../backend/member/business/MemberService.java | 11 +++++++++++ .../backend/member/implement/MemberWriter.java | 4 ++++ .../presentation/controller/MemberController.java | 7 +++++++ .../backend/auth/implement/MemberWriterTest.java | 14 ++++++++++++++ 4 files changed, 36 insertions(+) diff --git a/backend/src/main/java/mouda/backend/member/business/MemberService.java b/backend/src/main/java/mouda/backend/member/business/MemberService.java index 9826aea10..3124680da 100644 --- a/backend/src/main/java/mouda/backend/member/business/MemberService.java +++ b/backend/src/main/java/mouda/backend/member/business/MemberService.java @@ -5,6 +5,9 @@ import lombok.RequiredArgsConstructor; import mouda.backend.darakbangmember.domain.DarakbangMember; +import mouda.backend.member.domain.Member; +import mouda.backend.member.implement.MemberFinder; +import mouda.backend.member.implement.MemberWriter; import mouda.backend.member.presentation.response.MemberFindResponse; @Service @@ -12,9 +15,17 @@ @RequiredArgsConstructor public class MemberService { + private final MemberFinder memberFinder; + private final MemberWriter memberWriter; + @Transactional(readOnly = true) public MemberFindResponse findMyInfo(DarakbangMember darakbangMember) { String profile = ""; return new MemberFindResponse(darakbangMember.getNickname(), profile); } + + public void remove(DarakbangMember darakbangMember) { + Member member = memberFinder.find(darakbangMember.getMemberId()); + memberWriter.remove(member); + } } diff --git a/backend/src/main/java/mouda/backend/member/implement/MemberWriter.java b/backend/src/main/java/mouda/backend/member/implement/MemberWriter.java index 920514d81..f5f01304e 100644 --- a/backend/src/main/java/mouda/backend/member/implement/MemberWriter.java +++ b/backend/src/main/java/mouda/backend/member/implement/MemberWriter.java @@ -15,4 +15,8 @@ public class MemberWriter { public Member append(Member member) { return memberRepository.save(member); } + + public void remove(Member member) { + memberRepository.delete(member); + } } diff --git a/backend/src/main/java/mouda/backend/member/presentation/controller/MemberController.java b/backend/src/main/java/mouda/backend/member/presentation/controller/MemberController.java index 084771e08..540a97854 100644 --- a/backend/src/main/java/mouda/backend/member/presentation/controller/MemberController.java +++ b/backend/src/main/java/mouda/backend/member/presentation/controller/MemberController.java @@ -1,6 +1,7 @@ package mouda.backend.member.presentation.controller; import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -31,4 +32,10 @@ public ResponseEntity> findMyInfo( return ResponseEntity.ok().body(new RestResponse<>(memberFindResponse)); } + + @DeleteMapping("/delete") + public ResponseEntity removeMember(@LoginDarakbangMember DarakbangMember member) { + memberService.remove(member); + return ResponseEntity.ok().build(); + } } diff --git a/backend/src/test/java/mouda/backend/auth/implement/MemberWriterTest.java b/backend/src/test/java/mouda/backend/auth/implement/MemberWriterTest.java index 201116cd3..ebe538356 100644 --- a/backend/src/test/java/mouda/backend/auth/implement/MemberWriterTest.java +++ b/backend/src/test/java/mouda/backend/auth/implement/MemberWriterTest.java @@ -35,4 +35,18 @@ void append() { assertThat(savedMember.getId()).isEqualTo(1L); assertThat(memberRepository.findAll()).hasSize(1); } + + @DisplayName("멤버를 삭제한다.") + @Test + void remove() { + // given + Member tebah = MemberFixture.getTebah(); + memberWriter.append(tebah); + + // when + memberWriter.remove(tebah); + + // then + assertThat(memberRepository.findAll()).hasSize(0); + } }