File tree Expand file tree Collapse file tree 5 files changed +67
-0
lines changed
src/main/java/clap/server
adapter/inbound/web/admin Expand file tree Collapse file tree 5 files changed +67
-0
lines changed Original file line number Diff line number Diff line change 1+ package clap .server .adapter .inbound .web .admin ;
2+
3+ import clap .server .application .port .inbound .admin .DeleteMemberUsecase ;
4+ import clap .server .common .annotation .architecture .WebAdapter ;
5+ import io .swagger .v3 .oas .annotations .Operation ;
6+ import io .swagger .v3 .oas .annotations .tags .Tag ;
7+ import lombok .RequiredArgsConstructor ;
8+ import org .springframework .security .access .annotation .Secured ;
9+ import org .springframework .web .bind .annotation .PatchMapping ;
10+ import org .springframework .web .bind .annotation .PathVariable ;
11+ import org .springframework .web .bind .annotation .RequestMapping ;
12+
13+ @ Tag (name = "05. Admin" )
14+ @ WebAdapter
15+ @ RequiredArgsConstructor
16+ @ RequestMapping ("/api/managements" )
17+ public class DeleteMemberController {
18+ private final DeleteMemberUsecase deleteMemberUsecase ;
19+
20+ @ Operation (summary = "회원 삭제 API" )
21+ @ Secured ("ROLE_ADMIN" )
22+ @ PatchMapping ("/members/{memberId}" )
23+ public void deleteMember (@ PathVariable Long memberId ) {
24+ deleteMemberUsecase .deleteMember (memberId );
25+ }
26+ }
Original file line number Diff line number Diff line change 1+ package clap .server .application .port .inbound .admin ;
2+
3+ public interface DeleteMemberUsecase {
4+ void deleteMember (Long memberId );
5+ }
Original file line number Diff line number Diff line change 11package clap .server .application .port .inbound .domain ;
22
3+ import clap .server .application .port .outbound .member .CommandMemberPort ;
34import clap .server .application .port .outbound .member .LoadMemberPort ;
45import clap .server .domain .model .member .Member ;
56import clap .server .exception .ApplicationException ;
1314@ RequiredArgsConstructor
1415public class MemberService {
1516 private final LoadMemberPort loadMemberPort ;
17+ private final CommandMemberPort commandMemberPort ;
18+
1619
1720 public Member findById (Long memberId ) {
1821 return loadMemberPort .findById (memberId ).orElseThrow (
@@ -33,4 +36,5 @@ public Member findReviewer(Long memberId) {
3336 public List <Member > findReviewers () {
3437 return loadMemberPort .findReviewers ();
3538 }
39+
3640}
Original file line number Diff line number Diff line change 1+ package clap .server .application .service .admin ;
2+
3+ import clap .server .application .port .inbound .admin .DeleteMemberUsecase ;
4+ import clap .server .application .port .inbound .domain .MemberService ;
5+ import clap .server .application .port .outbound .member .CommandMemberPort ;
6+ import clap .server .application .port .outbound .member .LoadMemberPort ;
7+ import clap .server .domain .model .member .Member ;
8+ import clap .server .exception .ApplicationException ;
9+ import clap .server .exception .code .MemberErrorCode ;
10+ import lombok .RequiredArgsConstructor ;
11+ import org .springframework .stereotype .Service ;
12+
13+ @ Service
14+ @ RequiredArgsConstructor
15+ public class DeleteMemberService implements DeleteMemberUsecase {
16+ private final LoadMemberPort loadMemberPort ; // 조회 작업용 Port
17+ private final CommandMemberPort commandMemberPort ; // 데이터 변경 작업용 Port
18+
19+ @ Override
20+ public void deleteMember (Long memberId ) {
21+ Member member = loadMemberPort .findById (memberId )
22+ .orElseThrow (() -> new ApplicationException (MemberErrorCode .MEMBER_NOT_FOUND ));
23+
24+ member .setStatusDeleted ();
25+
26+ commandMemberPort .save (member );
27+ }
28+ }
Original file line number Diff line number Diff line change @@ -56,4 +56,8 @@ public String getNickname() {
5656 public boolean isReviewer () {
5757 return this .memberInfo != null && this .memberInfo .isReviewer ();
5858 }
59+
60+ public void setStatusDeleted () {
61+ this .status = MemberStatus .DELETED ;
62+ }
5963}
You can’t perform that action at this time.
0 commit comments