55import clap .server .application .port .inbound .domain .MemberService ;
66import clap .server .application .port .outbound .member .CommandMemberPort ;
77import clap .server .application .port .outbound .member .LoadDepartmentPort ;
8+ import clap .server .application .port .outbound .member .LoadMemberPort ;
89import clap .server .common .annotation .architecture .ApplicationService ;
910import clap .server .domain .model .member .Department ;
1011import clap .server .domain .model .member .Member ;
1112import clap .server .domain .model .member .MemberInfo ;
1213import clap .server .exception .ApplicationException ;
14+ import clap .server .exception .AuthException ;
15+ import clap .server .exception .code .AuthErrorCode ;
1316import clap .server .exception .code .DepartmentErrorCode ;
17+ import clap .server .exception .code .MemberErrorCode ;
1418import lombok .RequiredArgsConstructor ;
1519import org .springframework .security .crypto .password .PasswordEncoder ;
1620import org .springframework .transaction .annotation .Transactional ;
@@ -24,8 +28,7 @@ class RegisterMemberService implements RegisterMemberUsecase {
2428 private final MemberService memberService ;
2529 private final CommandMemberPort commandMemberPort ;
2630 private final LoadDepartmentPort loadDepartmentPort ;
27- private final PasswordEncoder passwordEncoder ;
28- private final CsvParseService csvParser ;
31+ private final LoadMemberPort loadMemberPort ;
2932
3033 @ Override
3134 @ Transactional
@@ -34,6 +37,12 @@ public void registerMember(Long adminId, RegisterMemberRequest request) {
3437 Department department = loadDepartmentPort .findById (request .departmentId ())
3538 .orElseThrow (() -> new ApplicationException (DepartmentErrorCode .DEPARTMENT_NOT_FOUND ));
3639
40+ loadMemberPort .findByNickname (request .nickname ()).ifPresent (
41+ member -> {
42+ throw new ApplicationException (MemberErrorCode .DUPLICATE_NICKNAME );
43+ }
44+ );
45+
3746 // TODO: 인프라팀만 담당자가 될 수 있도록 수정해야함
3847 MemberInfo memberInfo = MemberInfo .toMemberInfo (request .name (), request .email (), request .nickname (), request .isReviewer (),
3948 department , request .role (), request .departmentRole ());
0 commit comments