diff --git a/src/main/java/clap/server/adapter/inbound/web/admin/AddCategoryController.java b/src/main/java/clap/server/adapter/inbound/web/admin/AddCategoryController.java index 36a8a6f4..1384546e 100644 --- a/src/main/java/clap/server/adapter/inbound/web/admin/AddCategoryController.java +++ b/src/main/java/clap/server/adapter/inbound/web/admin/AddCategoryController.java @@ -1,10 +1,9 @@ package clap.server.adapter.inbound.web.admin; import clap.server.adapter.inbound.security.SecurityUserDetails; -import clap.server.adapter.inbound.web.dto.AddSubCategoryRequest; +import clap.server.adapter.inbound.web.dto.admin.AddSubCategoryRequest; import clap.server.adapter.inbound.web.dto.admin.AddMainCategoryRequest; -import clap.server.application.port.inbound.management.AddMainCategoryUsecase; -import clap.server.application.port.inbound.management.AddSubCategoryUsecase; +import clap.server.application.port.inbound.admin.AddCategoryUsecase; import clap.server.common.annotation.architecture.WebAdapter; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; @@ -14,26 +13,27 @@ import org.springframework.security.core.annotation.AuthenticationPrincipal; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; @Tag(name = "카테고리 추가") @WebAdapter @RequiredArgsConstructor +@RequestMapping("/api/managements") public class AddCategoryController { - private final AddMainCategoryUsecase addMainCategoryUsecase; - private final AddSubCategoryUsecase addSubCategoryUsecase; + private final AddCategoryUsecase addCategoryUsecase; @Operation(summary = "1차 카테고리 추가") - @PostMapping("/api/maincategory") + @PostMapping("/main-category") @Secured("ROLE_ADMIN") public void addMainCategory(@AuthenticationPrincipal SecurityUserDetails userInfo, @Valid @RequestBody AddMainCategoryRequest addMainCategoryRequest) { - addMainCategoryUsecase.addMainCategory(userInfo.getUserId(), addMainCategoryRequest.code(), addMainCategoryRequest.name()); + addCategoryUsecase.addMainCategory(userInfo.getUserId(), addMainCategoryRequest.code(), addMainCategoryRequest.name()); } @Operation(summary = "2차 카테고리 추가") - @PostMapping("/api/subcategory") + @PostMapping("/sub-category") @Secured("ROLE_ADMIN") public void addSubCategory(@AuthenticationPrincipal SecurityUserDetails userInfo, @Valid @RequestBody AddSubCategoryRequest addCategoryRequest) { - addSubCategoryUsecase.addSubCategory(userInfo.getUserId(), addCategoryRequest.mainCategoryId(), addCategoryRequest.code(), addCategoryRequest.name()); + addCategoryUsecase.addSubCategory(userInfo.getUserId(), addCategoryRequest.mainCategoryId(), addCategoryRequest.code(), addCategoryRequest.name()); } } \ No newline at end of file diff --git a/src/main/java/clap/server/adapter/inbound/web/admin/ManageMemberController.java b/src/main/java/clap/server/adapter/inbound/web/admin/ManageMemberController.java new file mode 100644 index 00000000..90cfd609 --- /dev/null +++ b/src/main/java/clap/server/adapter/inbound/web/admin/ManageMemberController.java @@ -0,0 +1,33 @@ +package clap.server.adapter.inbound.web.admin; + +import clap.server.adapter.inbound.security.SecurityUserDetails; +import clap.server.adapter.inbound.web.dto.admin.UpdateMemberInfoRequest; +import clap.server.application.port.inbound.admin.ManageMemberUsecase; +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.security.core.annotation.AuthenticationPrincipal; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +@Tag(name = "회원 관리 - 수정/ 삭제") +@WebAdapter +@RequiredArgsConstructor +@RequestMapping("/api/managements/members") +public class ManageMemberController { + private final ManageMemberUsecase manageMemberUsecase; + + @Operation(summary = "단일 회원 등록 API") + @PostMapping("/{memberId}") + @Secured("ROLE_ADMIN") + public void registerMember(@AuthenticationPrincipal SecurityUserDetails userInfo, + @PathVariable Long memberId, + @RequestBody @Valid UpdateMemberInfoRequest request){ + manageMemberUsecase.updateMemberInfo(memberId, request); + } +} diff --git a/src/main/java/clap/server/adapter/inbound/web/admin/RegisterMemberController.java b/src/main/java/clap/server/adapter/inbound/web/admin/RegisterMemberController.java index e26db4f4..68081709 100644 --- a/src/main/java/clap/server/adapter/inbound/web/admin/RegisterMemberController.java +++ b/src/main/java/clap/server/adapter/inbound/web/admin/RegisterMemberController.java @@ -2,7 +2,7 @@ import clap.server.adapter.inbound.security.SecurityUserDetails; import clap.server.adapter.inbound.web.dto.admin.RegisterMemberRequest; -import clap.server.application.port.inbound.management.RegisterMemberUsecase; +import clap.server.application.port.inbound.admin.RegisterMemberUsecase; import clap.server.common.annotation.architecture.WebAdapter; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; diff --git a/src/main/java/clap/server/adapter/inbound/web/dto/AddSubCategoryRequest.java b/src/main/java/clap/server/adapter/inbound/web/dto/admin/AddSubCategoryRequest.java similarity index 90% rename from src/main/java/clap/server/adapter/inbound/web/dto/AddSubCategoryRequest.java rename to src/main/java/clap/server/adapter/inbound/web/dto/admin/AddSubCategoryRequest.java index e5dab089..b43cc025 100644 --- a/src/main/java/clap/server/adapter/inbound/web/dto/AddSubCategoryRequest.java +++ b/src/main/java/clap/server/adapter/inbound/web/dto/admin/AddSubCategoryRequest.java @@ -1,4 +1,4 @@ -package clap.server.adapter.inbound.web.dto; +package clap.server.adapter.inbound.web.dto.admin; import jakarta.validation.constraints.Min; import jakarta.validation.constraints.NotBlank; diff --git a/src/main/java/clap/server/adapter/inbound/web/dto/admin/UpdateMemberInfoRequest.java b/src/main/java/clap/server/adapter/inbound/web/dto/admin/UpdateMemberInfoRequest.java new file mode 100644 index 00000000..1aa4f905 --- /dev/null +++ b/src/main/java/clap/server/adapter/inbound/web/dto/admin/UpdateMemberInfoRequest.java @@ -0,0 +1,27 @@ +package clap.server.adapter.inbound.web.dto.admin; + +import clap.server.adapter.outbound.persistense.entity.member.constant.MemberRole; +import io.swagger.v3.oas.annotations.media.Schema; +import jakarta.validation.constraints.NotBlank; +import jakarta.validation.constraints.NotNull; +import jakarta.validation.constraints.Pattern; + +public record UpdateMemberInfoRequest( + @NotBlank @Schema(description = "회원 이름", example = "서주원") + String name, + @NotBlank + @Pattern(regexp = "^[a-zA-Z0-9_+&*-]+(?:\\.[a-zA-Z0-9_+&*-]+)*@(?:[a-zA-Z0-9-]+\\.)+[a-zA-Z]{2,7}$", + message = "올바른 이메일 형식이 아닙니다.") + @Schema(description = "회원 이메일", example = "siena@gmail.com") + String email, + @NotNull @Schema(description = "승인 권한 여부") + Boolean isReviewer, + @NotNull @Schema(description = "부서 ID") + Long departmentId, + @NotNull @Schema(description = "회원 역할") + MemberRole role, + @NotBlank @Schema(description = "회원 직책") + String departmentRole +) { +} + diff --git a/src/main/java/clap/server/application/mapper/MemberMapper.java b/src/main/java/clap/server/application/mapper/MemberMapper.java index 2dace59d..389e7b8a 100644 --- a/src/main/java/clap/server/application/mapper/MemberMapper.java +++ b/src/main/java/clap/server/application/mapper/MemberMapper.java @@ -18,19 +18,6 @@ public static Member toMember(MemberInfo memberInfo) { .build(); } - public static MemberInfo toMemberInfo(String name, String email, String nickname, boolean isReviewer, - Department department, MemberRole role, String departmentRole) { - return MemberInfo.builder() - .name(name) - .email(email) - .nickname(nickname) - .isReviewer(isReviewer) - .department(department) - .role(role) - .departmentRole(departmentRole) - .build(); - } - public static MemberProfileResponse toMemberProfileResponse(Member member) { return new MemberProfileResponse( member.getMemberId(), diff --git a/src/main/java/clap/server/application/port/inbound/admin/AddCategoryUsecase.java b/src/main/java/clap/server/application/port/inbound/admin/AddCategoryUsecase.java new file mode 100644 index 00000000..b49bc41b --- /dev/null +++ b/src/main/java/clap/server/application/port/inbound/admin/AddCategoryUsecase.java @@ -0,0 +1,6 @@ +package clap.server.application.port.inbound.admin; + +public interface AddCategoryUsecase { + void addMainCategory(Long adminId, String code, String name); + void addSubCategory(Long adminId, Long mainCategoryId, String code, String name); +} \ No newline at end of file diff --git a/src/main/java/clap/server/application/port/inbound/admin/ManageMemberUsecase.java b/src/main/java/clap/server/application/port/inbound/admin/ManageMemberUsecase.java new file mode 100644 index 00000000..46050ae3 --- /dev/null +++ b/src/main/java/clap/server/application/port/inbound/admin/ManageMemberUsecase.java @@ -0,0 +1,7 @@ +package clap.server.application.port.inbound.admin; + +import clap.server.adapter.inbound.web.dto.admin.UpdateMemberInfoRequest; + +public interface ManageMemberUsecase { + void updateMemberInfo(Long memberId, UpdateMemberInfoRequest request); +} diff --git a/src/main/java/clap/server/application/port/inbound/management/RegisterMemberUsecase.java b/src/main/java/clap/server/application/port/inbound/admin/RegisterMemberUsecase.java similarity index 76% rename from src/main/java/clap/server/application/port/inbound/management/RegisterMemberUsecase.java rename to src/main/java/clap/server/application/port/inbound/admin/RegisterMemberUsecase.java index 909842c8..44855dab 100644 --- a/src/main/java/clap/server/application/port/inbound/management/RegisterMemberUsecase.java +++ b/src/main/java/clap/server/application/port/inbound/admin/RegisterMemberUsecase.java @@ -1,4 +1,4 @@ -package clap.server.application.port.inbound.management; +package clap.server.application.port.inbound.admin; import clap.server.adapter.inbound.web.dto.admin.RegisterMemberRequest; diff --git a/src/main/java/clap/server/application/port/inbound/management/AddMainCategoryUsecase.java b/src/main/java/clap/server/application/port/inbound/management/AddMainCategoryUsecase.java deleted file mode 100644 index 9f701dfb..00000000 --- a/src/main/java/clap/server/application/port/inbound/management/AddMainCategoryUsecase.java +++ /dev/null @@ -1,5 +0,0 @@ -package clap.server.application.port.inbound.management; - -public interface AddMainCategoryUsecase { - void addMainCategory(Long adminId, String code, String name); -} \ No newline at end of file diff --git a/src/main/java/clap/server/application/port/inbound/management/AddSubCategoryUsecase.java b/src/main/java/clap/server/application/port/inbound/management/AddSubCategoryUsecase.java deleted file mode 100644 index 314d04ad..00000000 --- a/src/main/java/clap/server/application/port/inbound/management/AddSubCategoryUsecase.java +++ /dev/null @@ -1,6 +0,0 @@ -package clap.server.application.port.inbound.management; - - -public interface AddSubCategoryUsecase { - void addSubCategory(Long adminId, Long mainCategoryId, String code, String name); -} diff --git a/src/main/java/clap/server/application/service/admin/AddSubCategoryService.java b/src/main/java/clap/server/application/service/admin/AddCategoryService.java similarity index 73% rename from src/main/java/clap/server/application/service/admin/AddSubCategoryService.java rename to src/main/java/clap/server/application/service/admin/AddCategoryService.java index 0b6dfdd0..e759577e 100644 --- a/src/main/java/clap/server/application/service/admin/AddSubCategoryService.java +++ b/src/main/java/clap/server/application/service/admin/AddCategoryService.java @@ -1,6 +1,6 @@ package clap.server.application.service.admin; -import clap.server.application.port.inbound.management.AddSubCategoryUsecase; +import clap.server.application.port.inbound.admin.AddCategoryUsecase; import clap.server.application.port.outbound.member.LoadMemberPort; import clap.server.application.port.outbound.task.CommandCategoryPort; import clap.server.application.port.outbound.task.LoadCategoryPort; @@ -17,10 +17,19 @@ @ApplicationService @RequiredArgsConstructor -public class AddSubCategoryService implements AddSubCategoryUsecase { +public class AddCategoryService implements AddCategoryUsecase { private final CommandCategoryPort commandCategoryPort; - private final LoadMemberPort loadMemberPort; private final LoadCategoryPort loadCategoryPort; + private final LoadMemberPort loadMemberPort; + + @Override + public void addMainCategory(Long adminId, String code, String name) { + Optional activeMember = loadMemberPort.findActiveMemberById(adminId); + Category mainCategory = Category.createMainCategory( + activeMember.orElseThrow(() -> new ApplicationException(ACTIVE_MEMBER_NOT_FOUND)), + code, name); + commandCategoryPort.save(mainCategory); + } @Override public void addSubCategory(Long adminId, Long mainCategoryId, String code, String name) { @@ -33,4 +42,4 @@ public void addSubCategory(Long adminId, Long mainCategoryId, String code, Strin code, name); commandCategoryPort.save(subCategory); } -} +} \ No newline at end of file diff --git a/src/main/java/clap/server/application/service/admin/AddMainCategoryService.java b/src/main/java/clap/server/application/service/admin/AddMainCategoryService.java deleted file mode 100644 index 82310e66..00000000 --- a/src/main/java/clap/server/application/service/admin/AddMainCategoryService.java +++ /dev/null @@ -1,30 +0,0 @@ -package clap.server.application.service.admin; - -import clap.server.application.port.inbound.management.AddMainCategoryUsecase; -import clap.server.application.port.outbound.member.LoadMemberPort; -import clap.server.application.port.outbound.task.CommandCategoryPort; -import clap.server.common.annotation.architecture.ApplicationService; -import clap.server.domain.model.member.Member; -import clap.server.domain.model.task.Category; -import clap.server.exception.ApplicationException; -import lombok.RequiredArgsConstructor; - -import java.util.Optional; - -import static clap.server.exception.code.MemberErrorCode.ACTIVE_MEMBER_NOT_FOUND; - -@ApplicationService -@RequiredArgsConstructor -public class AddMainCategoryService implements AddMainCategoryUsecase { - private final CommandCategoryPort commandCategoryPort; - private final LoadMemberPort loadMemberPort; - - @Override - public void addMainCategory(Long adminId, String code, String name) { - Optional activeMember = loadMemberPort.findActiveMemberById(adminId); - Category mainCategory = Category.createMainCategory( - activeMember.orElseThrow(() -> new ApplicationException(ACTIVE_MEMBER_NOT_FOUND)), - code, name); - commandCategoryPort.save(mainCategory); - } -} \ No newline at end of file diff --git a/src/main/java/clap/server/application/service/admin/ManageMemberService.java b/src/main/java/clap/server/application/service/admin/ManageMemberService.java new file mode 100644 index 00000000..f30b5962 --- /dev/null +++ b/src/main/java/clap/server/application/service/admin/ManageMemberService.java @@ -0,0 +1,35 @@ +package clap.server.application.service.admin; + +import clap.server.adapter.inbound.web.dto.admin.UpdateMemberInfoRequest; +import clap.server.application.port.inbound.admin.ManageMemberUsecase; +import clap.server.application.port.inbound.domain.MemberService; +import clap.server.application.port.outbound.member.CommandMemberPort; +import clap.server.application.port.outbound.member.LoadDepartmentPort; +import clap.server.common.annotation.architecture.ApplicationService; +import clap.server.domain.model.member.Department; +import clap.server.domain.model.member.Member; +import clap.server.exception.ApplicationException; +import clap.server.exception.code.DepartmentErrorCode; +import lombok.RequiredArgsConstructor; +import org.springframework.transaction.annotation.Transactional; + +@ApplicationService +@RequiredArgsConstructor +@Transactional +class ManageMemberService implements ManageMemberUsecase { + private final MemberService memberService; + private final CommandMemberPort commandMemberPort; + private final LoadDepartmentPort loadDepartmentPort; + + @Override + public void updateMemberInfo(Long memberId, UpdateMemberInfoRequest request) { + Member member = memberService.findActiveMember(memberId); + Department department = loadDepartmentPort.findById(request.departmentId()).orElseThrow(() -> new ApplicationException(DepartmentErrorCode.DEPARTMENT_NOT_FOUND)); + + //TODO: 인프라팀만 담당자가 될 수 있도록 수정해야함 + member.getMemberInfo().updateMemberInfo( + request.name(), request.email(), request.isReviewer(), + department, request.role(), request.departmentRole()); + commandMemberPort.save(member); + } +} diff --git a/src/main/java/clap/server/application/service/admin/RegisterMemberService.java b/src/main/java/clap/server/application/service/admin/RegisterMemberService.java index 3e163d3b..2985c564 100644 --- a/src/main/java/clap/server/application/service/admin/RegisterMemberService.java +++ b/src/main/java/clap/server/application/service/admin/RegisterMemberService.java @@ -1,8 +1,8 @@ package clap.server.application.service.admin; import clap.server.adapter.inbound.web.dto.admin.RegisterMemberRequest; +import clap.server.application.port.inbound.admin.RegisterMemberUsecase; import clap.server.application.port.inbound.domain.MemberService; -import clap.server.application.port.inbound.management.RegisterMemberUsecase; import clap.server.application.port.outbound.member.CommandMemberPort; import clap.server.application.port.outbound.member.LoadDepartmentPort; import clap.server.common.annotation.architecture.ApplicationService; @@ -15,9 +15,6 @@ import org.springframework.security.crypto.password.PasswordEncoder; import org.springframework.transaction.annotation.Transactional; -import static clap.server.application.mapper.MemberMapper.toMemberInfo; -import static clap.server.application.mapper.MemberMapper.toMember; - @ApplicationService @RequiredArgsConstructor class RegisterMemberService implements RegisterMemberUsecase { @@ -30,11 +27,13 @@ class RegisterMemberService implements RegisterMemberUsecase { @Transactional public void registerMember(Long adminId, RegisterMemberRequest request) { Member admin = memberService.findActiveMember(adminId); - Department department = loadDepartmentPort.findById(request.departmentId()).orElseThrow(()-> new ApplicationException(DepartmentErrorCode.DEPARTMENT_NOT_FOUND)); - MemberInfo memberInfo = toMemberInfo(request.name(), request.email(), request.nickname(), request.isReviewer(), + Department department = loadDepartmentPort.findById(request.departmentId()).orElseThrow(()-> + new ApplicationException(DepartmentErrorCode.DEPARTMENT_NOT_FOUND)); + + //TODO: 인프라팀만 담당자가 될 수 있도록 수정해야함 + MemberInfo memberInfo = MemberInfo.toMemberInfo(request.name(), request.email(), request.nickname(), request.isReviewer(), department, request.role(), request.departmentRole()); - Member member = toMember(memberInfo); - member.register(admin); + Member member = Member.createMember(admin, memberInfo); commandMemberPort.save(member); } } diff --git a/src/main/java/clap/server/application/StatisticsIndexingService.java b/src/main/java/clap/server/application/statistics/StatisticsIndexingService.java similarity index 94% rename from src/main/java/clap/server/application/StatisticsIndexingService.java rename to src/main/java/clap/server/application/statistics/StatisticsIndexingService.java index a94d3c12..a5ee5c57 100644 --- a/src/main/java/clap/server/application/StatisticsIndexingService.java +++ b/src/main/java/clap/server/application/statistics/StatisticsIndexingService.java @@ -1,4 +1,4 @@ -package clap.server.application; +package clap.server.application.statistics; import clap.server.application.port.outbound.task.LoadTaskPort; import clap.server.application.port.outbound.task.TaskDocumentPort; 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 09f60afa..f55b3fcc 100644 --- a/src/main/java/clap/server/domain/model/member/Member.java +++ b/src/main/java/clap/server/domain/model/member/Member.java @@ -1,5 +1,6 @@ package clap.server.domain.model.member; +import clap.server.adapter.outbound.persistense.entity.member.constant.MemberRole; import clap.server.adapter.outbound.persistense.entity.member.constant.MemberStatus; import clap.server.domain.model.common.BaseTime; import lombok.*; @@ -29,12 +30,15 @@ public Member(MemberInfo memberInfo, Boolean notificationEnabled, Member admin, this.password = password; } - public void register(Member admin) { - this.admin = admin; - this.notificationEnabled = null; - this.imageUrl = null; - this.status = MemberStatus.PENDING; - this.password = null; + public static Member createMember(Member admin, MemberInfo memberInfo) { + return Member.builder() + .memberInfo(memberInfo) + .notificationEnabled(null) + .admin(admin) + .imageUrl(null) + .status(MemberStatus.PENDING) + .password(null) + .build(); } public void resetPassword(String newEncodedPassword) { @@ -45,6 +49,7 @@ public void resetPasswordAndActivateMember(String newEncodedPassword) { this.password = newEncodedPassword; this.status = MemberStatus.ACTIVE; } + public String getNickname() { return memberInfo != null ? memberInfo.getNickname() : null; } diff --git a/src/main/java/clap/server/domain/model/member/MemberInfo.java b/src/main/java/clap/server/domain/model/member/MemberInfo.java index 31917d52..11e3bf2f 100644 --- a/src/main/java/clap/server/domain/model/member/MemberInfo.java +++ b/src/main/java/clap/server/domain/model/member/MemberInfo.java @@ -1,7 +1,12 @@ package clap.server.domain.model.member; import clap.server.adapter.outbound.persistense.entity.member.constant.MemberRole; -import lombok.*; +import clap.server.exception.DomainException; +import clap.server.exception.code.MemberErrorCode; +import lombok.AccessLevel; +import lombok.Builder; +import lombok.Getter; +import lombok.NoArgsConstructor; import lombok.experimental.SuperBuilder; @Getter @@ -28,4 +33,37 @@ public MemberInfo(String name, String email, String nickname, boolean isReviewer this.departmentRole = departmentRole; } + public static MemberInfo toMemberInfo(String name, String email, String nickname, boolean isReviewer, + Department department, MemberRole role, String departmentRole) { + assertReviewerIsManager(isReviewer, role); + return MemberInfo.builder() + .name(name) + .email(email) + .nickname(nickname) + .isReviewer(isReviewer) + .department(department) + .role(role) + .departmentRole(departmentRole) + .build(); + } + + public void updateMemberInfo(String name, String email, boolean isReviewer, + Department department, MemberRole role, String departmentRole) { + assertReviewerIsManager(isReviewer, role); + this.name = name; + this.email = email; + this.isReviewer = isReviewer; + this.department = department; + this.role = role; + this.departmentRole = departmentRole; + } + + public static void assertReviewerIsManager(boolean isReviewer, MemberRole role) { + if (isReviewer) { + if (role != MemberRole.ROLE_MANAGER) { + throw new DomainException(MemberErrorCode.MEMBER_REGISTER_FAILED); + } + } + } + } \ No newline at end of file diff --git a/src/main/java/clap/server/exception/code/MemberErrorCode.java b/src/main/java/clap/server/exception/code/MemberErrorCode.java index 477c5f27..dae6b6ef 100644 --- a/src/main/java/clap/server/exception/code/MemberErrorCode.java +++ b/src/main/java/clap/server/exception/code/MemberErrorCode.java @@ -9,7 +9,8 @@ public enum MemberErrorCode implements BaseErrorCode { MEMBER_NOT_FOUND(HttpStatus.NOT_FOUND, "MEMBER_001", "회원을 찾을 수 없습니다."), ACTIVE_MEMBER_NOT_FOUND(HttpStatus.NOT_FOUND, "MEMBER_002", "활성화 회원을 찾을 수 없습니다."), - NOT_A_REVIEWER(HttpStatus.FORBIDDEN, "MEMBER_003", "리뷰어 권한이 없습니다.") + NOT_A_REVIEWER(HttpStatus.FORBIDDEN, "MEMBER_003", "리뷰어 권한이 없습니다."), + MEMBER_REGISTER_FAILED(HttpStatus.BAD_REQUEST, "MEMBER_004", "회원 등록에 실패하였습니다"); ; private final HttpStatus httpStatus; diff --git a/src/test/java/clap/server/application/service/admin/AddCategoryServiceTest.java b/src/test/java/clap/server/application/service/admin/AddCategoryServiceTest.java index b35c58fb..f3cf4259 100644 --- a/src/test/java/clap/server/application/service/admin/AddCategoryServiceTest.java +++ b/src/test/java/clap/server/application/service/admin/AddCategoryServiceTest.java @@ -34,9 +34,7 @@ static void elasticProperties(DynamicPropertyRegistry registry) { } @Autowired - private AddMainCategoryService addMainCategoryService; - @Autowired - private AddSubCategoryService addsubCategoryService; + private AddCategoryService addCategoryService; @Autowired private EntityManager entityManager; @@ -58,7 +56,7 @@ void addMainCategory() { entityManager.persist(admin); admin = entityManager.find(MemberEntity.class, 1); - addMainCategoryService.addMainCategory(admin.getMemberId(), "VM", "가상머신"); + addCategoryService.addMainCategory(admin.getMemberId(), "VM", "가상머신"); CategoryEntity category = entityManager.find(CategoryEntity.class, 1); assertThat(category.getCategoryId()).isEqualTo(1); @@ -70,7 +68,7 @@ void addMainCategory() { @Test void addSubCategory() { MemberEntity admin = entityManager.find(MemberEntity.class, 1); - addsubCategoryService.addSubCategory(admin.getMemberId(), 1L, "CR", "생성"); + addCategoryService.addSubCategory(admin.getMemberId(), 1L, "CR", "생성"); CategoryEntity category = entityManager.find(CategoryEntity.class, 2); assertThat(category.getCategoryId()).isEqualTo(2);