diff --git a/src/main/java/com/balybus/galaxy/helper/controller/HelperController.java b/src/main/java/com/balybus/galaxy/helper/controller/HelperController.java index 874d58e6..6fa4d1e2 100644 --- a/src/main/java/com/balybus/galaxy/helper/controller/HelperController.java +++ b/src/main/java/com/balybus/galaxy/helper/controller/HelperController.java @@ -5,6 +5,13 @@ import com.balybus.galaxy.helper.dto.response.*; import com.balybus.galaxy.helper.serviceImpl.service.HelperServiceImpl; import com.balybus.galaxy.login.dto.request.HelperCertDTO; +import com.balybus.galaxy.login.dto.response.AccessTokenResponse; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.media.ArraySchema; +import io.swagger.v3.oas.annotations.media.Content; +import io.swagger.v3.oas.annotations.media.Schema; +import io.swagger.v3.oas.annotations.responses.ApiResponse; +import io.swagger.v3.oas.annotations.responses.ApiResponses; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.apache.coyote.Response; @@ -29,6 +36,13 @@ public class HelperController { * @param userDetails * @return */ + @Operation(summary = "요양 보호사 정보 모두 보기", description = "현재 로그인한 요양 보호사 정보 모두 보기") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "요양 보호사 정보 가져오기 성공", + content = @Content(schema = @Schema(implementation = HelperResponse.class))), + @ApiResponse(responseCode = "3000", description = "요양 보호사 테이블을 찾을 수 없습니다."), + @ApiResponse(responseCode = "3010", description = "로그인한 회원을 찾을 수 없습니다."), + }) @GetMapping("/get-helper-info") public ResponseEntity getHelperInfo(@AuthenticationPrincipal UserDetails userDetails) { HelperResponse helperResponse = helperService.getAllHelperInfo(userDetails); @@ -41,6 +55,13 @@ public ResponseEntity getHelperInfo(@AuthenticationPrincipal Use * @param wageUpdateDTO * @return */ + @Operation(summary = "요양 보호사 희망 급여 업데이트", description = "현재 로그인한 요양 보호사 희망 급여 업데이트") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "요양 보호사 희망 급여 업데이트 성공", + content = @Content(schema = @Schema(implementation = WageUpdateResponse.class))), + @ApiResponse(responseCode = "3000", description = "요양 보호사 테이블을 찾을 수 없습니다."), + @ApiResponse(responseCode = "3010", description = "로그인한 회원을 찾을 수 없습니다.") + }) @PutMapping("/update-wage") public ResponseEntity updateWage( @AuthenticationPrincipal UserDetails userDetails, @@ -55,6 +76,13 @@ public ResponseEntity updateWage( * @param userDetails * @return */ + @Operation(summary = "요양 보호사 프로필 업데이트", description = "현재 로그인한 요양 보호사 프로필 업데이트") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "프로필이 정상적으로 업데이트 되었습니다.", + content = @Content(schema = @Schema(implementation = String.class))), + @ApiResponse(responseCode = "3000", description = "요양 보호사 테이블을 찾을 수 없습니다."), + @ApiResponse(responseCode = "3010", description = "로그인한 회원을 찾을 수 없습니다.") + }) @PutMapping("/update-profile") public ResponseEntity updateProfile(@RequestBody HelperProfileDTO helperProfileDTO, @AuthenticationPrincipal UserDetails userDetails) { helperService.updateProfile(userDetails, helperProfileDTO); @@ -69,6 +97,14 @@ public ResponseEntity updateProfile(@RequestBody HelperProfileDTO helper * @param helperWorkLocationDTO * @return */ + @Operation(summary = "요양 보호사가 선택한 여러 근무 희망 지역 저장", description = "현재 로그인한 요양 보호사가 선택한 여러 근무 희망 지역 저장") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "근무 희망 지역이 성공적으로 저장되었습니다.", + content = @Content(schema = @Schema(implementation = HelperWorkLocationReponse.class))), + @ApiResponse(responseCode = "3000", description = "요양 보호사 테이블을 찾을 수 없습니다."), + @ApiResponse(responseCode = "3008", description = "잘못된 주소 목록"), + @ApiResponse(responseCode = "3010", description = "로그인한 회원을 찾을 수 없습니다."), + }) @PostMapping("/work-location") public ResponseEntity workLocation( @RequestBody HelperWorkLocationDTO helperWorkLocationDTO, @@ -82,6 +118,16 @@ public ResponseEntity workLocation( * 광역시.도 근무 희망지 반환 * @return */ + @Operation(summary = "광역시.도 목록 조회", description = "모든 광역시.도 주소 목록을 반환 합니다.") + @ApiResponses(value = { + @ApiResponse( + responseCode = "200", description = "시.도 조회 성공", + content = @Content( + mediaType = "application/json", + array = @ArraySchema(schema = @Schema(implementation = TblAddressFirstResponse.class)) + ) + ) + }) @GetMapping("/get-first-addr") public ResponseEntity> getFirstAddress() { List addressList = helperService.getFirstAddress(); @@ -94,6 +140,16 @@ public ResponseEntity> getFirstAddress() { * @param afSeq * @return */ + @Operation(summary = "광역시.군.구 목록 조회", description = "광역시.도.구 주소 목록을 반환 합니다.") + @ApiResponses(value = { + @ApiResponse( + responseCode = "200", description = "시.군.구 조회 성공", + content = @Content( + mediaType = "application/json", + array = @ArraySchema(schema = @Schema(implementation = TblAddressSecondResponse.class)) + ) + ) + }) @GetMapping("/second/{afSeq}") public ResponseEntity> getAddressSecond(@PathVariable Long afSeq) { List addressSeconds = helperService.getAddressSecondByFirstId(afSeq); @@ -105,6 +161,16 @@ public ResponseEntity> getAddressSecond(@PathVari * @param asSeq * @return */ + @Operation(summary = "읍.면.동 근무 희망지 반환", description = "읍.면.동 근무 희망지 목록을 반환 합니다.") + @ApiResponses(value = { + @ApiResponse( + responseCode = "200", description = "읍.면.동 근무 희망지 조회 성공", + content = @Content( + mediaType = "application/json", + array = @ArraySchema(schema = @Schema(implementation = TblAddressSecondResponse.class)) + ) + ) + }) @GetMapping("/third/{asSeq}") public ResponseEntity> getAddressThird(@PathVariable Long asSeq) { List thirdAddresses = helperService.getThirdAddressBySecondId(asSeq); @@ -119,6 +185,14 @@ public ResponseEntity> getAddressThird(@PathVariab * @param userDetails * @return */ + @Operation(summary = "요양 보호사 근무 가능 시간 저장", description = "현재 로그인한 요양 보호사가 근무 가능한 시간 저장") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "근무 가능 시간이 성공적으로 저장되었습니다.", + content = @Content(schema = @Schema(implementation = HelperWorkTimeResponse.class))), + @ApiResponse(responseCode = "3000", description = "요양 보호사 테이블을 찾을 수 없습니다."), + @ApiResponse(responseCode = "3009", description = "중복된 근무 가능 시간 주소가 존재합니다."), + @ApiResponse(responseCode = "3010", description = "로그인한 회원을 찾을 수 없습니다."), + }) @PostMapping("/helper-work-time") public ResponseEntity workTime( @RequestBody HelperWorkTimeRequestDTO helperWorkTimeDTO, @@ -134,6 +208,16 @@ public ResponseEntity workTime( * @param userDetails * @return */ + @Operation(summary = "요양 보호사 경력 저장", description = "현재 로그인한 요양 보호사 경력 저장") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "요양 보호사의 경력이 성공적으로 저장되었습니다.", + content = @Content(schema = @Schema(implementation = HelperExperienceResponse.class))), + @ApiResponse(responseCode = "3000", description = "요양 보호사 테이블을 찾을 수 없습니다."), + @ApiResponse(responseCode = "3004", description = "요양 보호사 경력 회원 가입 정보를 다시 확인해주세요."), + @ApiResponse(responseCode = "3006", description = "해당 요양 보호사는 이미 등록된 근무 경력이 있습니다."), + @ApiResponse(responseCode = "3010", description = "로그인한 회원을 찾을 수 없습니다."), + @ApiResponse(responseCode = "5000", description = "서버에서 에러가 발생하였습니다.") + }) @PostMapping("/helper-exp") public ResponseEntity helperExp( @RequestBody HelperExperienceDTO helperExperienceDTO, @@ -148,12 +232,31 @@ public ResponseEntity helperExp( * @param helperSearchDTO * @return */ + @Operation(summary = "요양 보호사 검색", description = "조건에 맞는 요양 보호사 검색") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "조건에 맞는 요양 보호사가 모두 검색되었습니다.", + content = @Content(schema = @Schema(implementation = HelperSearchResponse.class))), + @ApiResponse(responseCode = "3010", description = "로그인한 회원을 찾을 수 없습니다."), + @ApiResponse(responseCode = "3011", description = "요양 보호사 나이 계산 중 알 수 없는 에러가 발생 했습니다."), + }) @PostMapping("/search-helper") public ResponseEntity searchHelper(@RequestBody HelperSearchDTO helperSearchDTO) { HelperSearchResponse helperSearchResponse = helperService.helperSearch(helperSearchDTO); return ResponseEntity.ok(helperSearchResponse); } + /** + * 요양 보호사 Q-Net 자격증 검증 로직 + * @param helperCertDTO 요양 보호사 자격증 정보 + * @return + */ + @Operation(summary = "요양 보호사 자격증 검증", description = "요양 보호사 관련 자격증 유효성을 Q-Net에서 검증하기ㅏ") + @ApiResponses({ + @ApiResponse(responseCode = "200", description = "요양 보호사 관련 자격증이 인증되었습니다.", + content = @Content(schema = @Schema(implementation = HelperSearchResponse.class))), + @ApiResponse(responseCode = "3010", description = "로그인한 회원을 찾을 수 없습니다."), + @ApiResponse(responseCode = "3000", description = "요양 보호사 테이블을 찾을 수 없습니다."), + }) @PostMapping("/certi-verify") public ResponseEntity> certiVerify( @AuthenticationPrincipal UserDetails userDetails, diff --git a/src/main/java/com/balybus/galaxy/helper/serviceImpl/service/HelperServiceImpl.java b/src/main/java/com/balybus/galaxy/helper/serviceImpl/service/HelperServiceImpl.java index 22c10094..0353fe10 100644 --- a/src/main/java/com/balybus/galaxy/helper/serviceImpl/service/HelperServiceImpl.java +++ b/src/main/java/com/balybus/galaxy/helper/serviceImpl/service/HelperServiceImpl.java @@ -295,13 +295,6 @@ public HelperExperienceResponse experienceSignUp(HelperExperienceDTO helperExper .helperName(tblHelperExperienceSaved.getHelper().getName()) .filed(tblHelperExperienceSaved.getField()) .build(); - - } catch (DataIntegrityViolationException e) { - throw new BadRequestException(DATA_VALIDATION_ERROR); - - } catch (TransactionSystemException e) { - throw new BadRequestException(TRANSACTIONAL_ERROR); - } catch (Exception e) { throw new BadRequestException(INTERNAL_SEVER_ERROR); } diff --git a/src/main/java/com/balybus/galaxy/login/controller/LoginController.java b/src/main/java/com/balybus/galaxy/login/controller/LoginController.java index fb0d2a9a..7b8edebb 100644 --- a/src/main/java/com/balybus/galaxy/login/controller/LoginController.java +++ b/src/main/java/com/balybus/galaxy/login/controller/LoginController.java @@ -130,7 +130,7 @@ public ResponseEntity checkAuthenticationCode(@RequestBody MailRequestDto.Che @Operation(summary = "요양 보호사 회원 가입", description = "요양 보호사 회원 정보를 등록합니다.") @ApiResponses({ @ApiResponse(responseCode = "200", description = "회원 가입 성공, 유효하지 않은 자격증을 반환합니다.", - content = @Content(schema = @Schema(implementation = TblHelperResponse.class))), + content = @Content(schema = @Schema(implementation = HelperCertDTO.class))), @ApiResponse(responseCode = "4001", description = "회원가입 정보를 확인해 주세요."), @ApiResponse(responseCode = "4000", description = "로그인 아이디가 이미 존재합니다.") })