diff --git a/src/main/java/clap/server/adapter/inbound/web/admin/DeleteMemberController.java b/src/main/java/clap/server/adapter/inbound/web/admin/DeleteMemberController.java index 91f89b1f..4186f72f 100644 --- a/src/main/java/clap/server/adapter/inbound/web/admin/DeleteMemberController.java +++ b/src/main/java/clap/server/adapter/inbound/web/admin/DeleteMemberController.java @@ -1,13 +1,15 @@ package clap.server.adapter.inbound.web.admin; +import clap.server.adapter.inbound.web.dto.admin.request.DeleteMemberRequest; import clap.server.application.port.inbound.admin.DeleteMemberUsecase; import clap.server.common.annotation.architecture.WebAdapter; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import org.springframework.security.access.annotation.Secured; import org.springframework.web.bind.annotation.PatchMapping; -import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; @Tag(name = "05. Admin") @@ -19,8 +21,8 @@ public class DeleteMemberController { @Operation(summary = "회원 삭제 API") @Secured("ROLE_ADMIN") - @PatchMapping("/members/{memberId}") - public void deleteMember(@PathVariable Long memberId) { - deleteMemberUsecase.deleteMember(memberId); + @PatchMapping("/members/delete") + public void deleteMember(@RequestBody @Valid DeleteMemberRequest deleteMemberRequest) { + deleteMemberUsecase.deleteMember(deleteMemberRequest.memberId()); } } diff --git a/src/main/java/clap/server/adapter/inbound/web/admin/FindMemberController.java b/src/main/java/clap/server/adapter/inbound/web/admin/FindMemberController.java index b85c69f4..18d1afe7 100644 --- a/src/main/java/clap/server/adapter/inbound/web/admin/FindMemberController.java +++ b/src/main/java/clap/server/adapter/inbound/web/admin/FindMemberController.java @@ -4,11 +4,12 @@ import clap.server.adapter.inbound.web.dto.admin.response.RetrieveAllMemberResponse; import clap.server.adapter.inbound.web.dto.common.PageResponse; import clap.server.application.port.inbound.admin.FindMembersWithFilterUsecase; + import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; -import lombok.RequiredArgsConstructor; import jakarta.validation.Valid; +import lombok.RequiredArgsConstructor; import org.springframework.data.domain.PageRequest; import org.springframework.data.domain.Pageable; import org.springframework.http.ResponseEntity; diff --git a/src/main/java/clap/server/adapter/inbound/web/dto/admin/request/DeleteMemberRequest.java b/src/main/java/clap/server/adapter/inbound/web/dto/admin/request/DeleteMemberRequest.java new file mode 100644 index 00000000..51c90eef --- /dev/null +++ b/src/main/java/clap/server/adapter/inbound/web/dto/admin/request/DeleteMemberRequest.java @@ -0,0 +1,11 @@ +package clap.server.adapter.inbound.web.dto.admin.request; + +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotNull; + +public record DeleteMemberRequest( + @NotNull(message = "회원 ID는 필수 값입니다.") + @Schema(description = "삭제할 회원 ID", example = "1", required = true) + Long memberId +) { +} diff --git a/src/main/java/clap/server/application/service/admin/DeleteMemberService.java b/src/main/java/clap/server/application/service/admin/DeleteMemberService.java index 8a08105a..3117d3e3 100644 --- a/src/main/java/clap/server/application/service/admin/DeleteMemberService.java +++ b/src/main/java/clap/server/application/service/admin/DeleteMemberService.java @@ -1,7 +1,6 @@ package clap.server.application.service.admin; import clap.server.application.port.inbound.admin.DeleteMemberUsecase; -import clap.server.application.port.inbound.domain.MemberService; import clap.server.application.port.outbound.member.CommandMemberPort; import clap.server.application.port.outbound.member.LoadMemberPort; import clap.server.domain.model.member.Member; @@ -13,8 +12,8 @@ @Service @RequiredArgsConstructor public class DeleteMemberService implements DeleteMemberUsecase { - private final LoadMemberPort loadMemberPort; // 조회 작업용 Port - private final CommandMemberPort commandMemberPort; // 데이터 변경 작업용 Port + private final LoadMemberPort loadMemberPort; + private final CommandMemberPort commandMemberPort; @Override public void deleteMember(Long memberId) { diff --git a/src/main/java/clap/server/application/service/task/UpdateTaskService.java b/src/main/java/clap/server/application/service/task/UpdateTaskService.java index 6d307a61..e05b21cb 100644 --- a/src/main/java/clap/server/application/service/task/UpdateTaskService.java +++ b/src/main/java/clap/server/application/service/task/UpdateTaskService.java @@ -3,12 +3,10 @@ import clap.server.adapter.inbound.web.dto.task.request.UpdateTaskLabelRequest; import clap.server.adapter.inbound.web.dto.task.request.UpdateTaskProcessorRequest; import clap.server.adapter.inbound.web.dto.task.request.UpdateTaskRequest; -import clap.server.adapter.inbound.web.dto.task.response.UpdateTaskResponse; import clap.server.adapter.outbound.persistense.entity.notification.constant.NotificationType; import clap.server.adapter.outbound.persistense.entity.task.constant.TaskHistoryType; import clap.server.adapter.outbound.persistense.entity.task.constant.TaskStatus; import clap.server.application.mapper.AttachmentMapper; -import clap.server.application.mapper.TaskResponseMapper; import clap.server.application.port.inbound.domain.CategoryService; import clap.server.application.port.inbound.domain.LabelService; import clap.server.application.port.inbound.domain.MemberService; diff --git a/src/main/java/clap/server/domain/model/member/Member.java b/src/main/java/clap/server/domain/model/member/Member.java index 3c6d7163..82ed06f4 100644 --- a/src/main/java/clap/server/domain/model/member/Member.java +++ b/src/main/java/clap/server/domain/model/member/Member.java @@ -24,7 +24,7 @@ public class Member extends BaseTime { private MemberStatus status; private String password; - // @Builder가 Lombok과 충돓하여 삭제 + public Member(MemberInfo memberInfo, Boolean agitNotificationEnabled, Boolean emailNotificationEnabled, Boolean kakaoworkNotificationEnabled, Member admin, String imageUrl, MemberStatus status, String password) { this.memberInfo = memberInfo;