Merge branch 'be/refactor/response' into 'be/develop'
Refactor: 응답 리팩토링 See merge request s11-s-project/S11P21S002!74
This commit is contained in:
commit
3f0c5cd487
@ -46,10 +46,7 @@ public class AuthController {
|
|||||||
@SwaggerApiSuccess(description = "Return Access Token")
|
@SwaggerApiSuccess(description = "Return Access Token")
|
||||||
@SwaggerApiError({ErrorCode.INVALID_TOKEN, ErrorCode.USER_ALREADY_SIGN_OUT, ErrorCode.REFRESH_TOKEN_EXPIRED, ErrorCode.INVALID_REFRESH_TOKEN})
|
@SwaggerApiError({ErrorCode.INVALID_TOKEN, ErrorCode.USER_ALREADY_SIGN_OUT, ErrorCode.REFRESH_TOKEN_EXPIRED, ErrorCode.INVALID_REFRESH_TOKEN})
|
||||||
@PostMapping("/reissue")
|
@PostMapping("/reissue")
|
||||||
public SuccessResponse<AccessTokenResponse> reissue(
|
public AccessTokenResponse reissue(HttpServletRequest request, HttpServletResponse response) {
|
||||||
HttpServletRequest request,
|
|
||||||
HttpServletResponse response
|
|
||||||
) {
|
|
||||||
log.debug("reissue request");
|
log.debug("reissue request");
|
||||||
String refresh = parseRefreshCookie(request);
|
String refresh = parseRefreshCookie(request);
|
||||||
try {
|
try {
|
||||||
@ -59,7 +56,7 @@ public class AuthController {
|
|||||||
response.addCookie(createCookie(newToken.getRefreshToken()));
|
response.addCookie(createCookie(newToken.getRefreshToken()));
|
||||||
authService.saveRefreshToken(id, newToken.getRefreshToken(),refreshExpiry);
|
authService.saveRefreshToken(id, newToken.getRefreshToken(),refreshExpiry);
|
||||||
|
|
||||||
return SuccessResponse.of(AccessTokenResponse.from(newToken.getAccessToken()));
|
return AccessTokenResponse.from(newToken.getAccessToken());
|
||||||
} catch (CustomException e) {
|
} catch (CustomException e) {
|
||||||
throw e;
|
throw e;
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
@ -71,9 +68,8 @@ public class AuthController {
|
|||||||
@SwaggerApiSuccess(description = "Return Member Info")
|
@SwaggerApiSuccess(description = "Return Member Info")
|
||||||
@SwaggerApiError({ErrorCode.INVALID_TOKEN, ErrorCode.USER_ALREADY_SIGN_OUT, ErrorCode.REFRESH_TOKEN_EXPIRED, ErrorCode.INVALID_REFRESH_TOKEN, ErrorCode.USER_NOT_FOUND})
|
@SwaggerApiError({ErrorCode.INVALID_TOKEN, ErrorCode.USER_ALREADY_SIGN_OUT, ErrorCode.REFRESH_TOKEN_EXPIRED, ErrorCode.INVALID_REFRESH_TOKEN, ErrorCode.USER_NOT_FOUND})
|
||||||
@GetMapping("/profile")
|
@GetMapping("/profile")
|
||||||
public SuccessResponse<MemberResponse> getMemberInfo(@CurrentUser Integer currentMember){
|
public MemberResponse getMemberInfo(@CurrentUser Integer currentMember){
|
||||||
MemberResponse memberResponse = memberService.getMemberId(currentMember);
|
return memberService.getMemberId(currentMember);
|
||||||
return SuccessResponse.of(memberResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private static String parseRefreshCookie(HttpServletRequest request) {
|
private static String parseRefreshCookie(HttpServletRequest request) {
|
||||||
@ -93,7 +89,7 @@ public class AuthController {
|
|||||||
cookie.setMaxAge((int) (refreshExpiry / 1000));
|
cookie.setMaxAge((int) (refreshExpiry / 1000));
|
||||||
cookie.setPath("/");
|
cookie.setPath("/");
|
||||||
cookie.setHttpOnly(true);
|
cookie.setHttpOnly(true);
|
||||||
// cookie.setSecure(true); // 배포 시 HTTPS에서 사용
|
cookie.setSecure(true); // 배포 시 HTTPS에서 사용
|
||||||
return cookie;
|
return cookie;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -29,61 +29,57 @@ public class CommentController {
|
|||||||
@SwaggerApiSuccess(description = "댓글 목록을 성공적으로 조회합니다.")
|
@SwaggerApiSuccess(description = "댓글 목록을 성공적으로 조회합니다.")
|
||||||
@Operation(summary = "댓글 목록 조회", description = "댓글 목록을 조회합니다.")
|
@Operation(summary = "댓글 목록 조회", description = "댓글 목록을 조회합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
public BaseResponse<CommentResponses> getAllComments(
|
public CommentResponses getAllComments(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("image_id") final Long imageId) {
|
@PathVariable("image_id") final Long imageId) {
|
||||||
List<CommentResponse> comments = commentService.getAllComments(memberId, projectId, imageId);
|
List<CommentResponse> comments = commentService.getAllComments(memberId, projectId, imageId);
|
||||||
return new SuccessResponse<>(CommentResponses.from(comments));
|
return CommentResponses.from(comments);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/{comment_id}")
|
@GetMapping("/{comment_id}")
|
||||||
@SwaggerApiSuccess(description = "댓글을 성공적으로 조회합니다.")
|
@SwaggerApiSuccess(description = "댓글을 성공적으로 조회합니다.")
|
||||||
@Operation(summary = "댓글 조회", description = "댓글을 조회합니다.")
|
@Operation(summary = "댓글 조회", description = "댓글을 조회합니다.")
|
||||||
@SwaggerApiError({ErrorCode.COMMENT_NOT_FOUND, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.COMMENT_NOT_FOUND, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
public BaseResponse<CommentResponse> getCommentById(
|
public CommentResponse getCommentById(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("comment_id") final Integer commentId) {
|
@PathVariable("comment_id") final Integer commentId) {
|
||||||
CommentResponse comment = commentService.getCommentById(memberId, projectId, commentId);
|
return commentService.getCommentById(memberId, projectId, commentId);
|
||||||
return new SuccessResponse<>(comment);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/images/{image_id}")
|
@PostMapping("/images/{image_id}")
|
||||||
@SwaggerApiSuccess(description = "댓글을 성공적으로 생성합니다.")
|
@SwaggerApiSuccess(description = "댓글을 성공적으로 생성합니다.")
|
||||||
@Operation(summary = "댓글 생성", description = "댓글을 생성합니다.")
|
@Operation(summary = "댓글 생성", description = "댓글을 생성합니다.")
|
||||||
@SwaggerApiError({ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
public BaseResponse<CommentResponse> createComment(
|
public CommentResponse createComment(
|
||||||
@RequestBody final CommentRequest commentRequest,
|
@RequestBody final CommentRequest commentRequest,
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("image_id") final Long imageId) {
|
@PathVariable("image_id") final Long imageId) {
|
||||||
CommentResponse comment = commentService.createComment(commentRequest, memberId, projectId, imageId);
|
return commentService.createComment(commentRequest, memberId, projectId, imageId);
|
||||||
return new SuccessResponse<>(comment);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/{comment_id}")
|
@PutMapping("/{comment_id}")
|
||||||
@SwaggerApiSuccess(description = "댓글을 성공적으로 수정합니다.")
|
@SwaggerApiSuccess(description = "댓글을 성공적으로 수정합니다.")
|
||||||
@Operation(summary = "댓글 수정", description = "댓글을 수정합니다.")
|
@Operation(summary = "댓글 수정", description = "댓글을 수정합니다.")
|
||||||
@SwaggerApiError({ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
public BaseResponse<CommentResponse> updateComment(
|
public CommentResponse updateComment(
|
||||||
@RequestBody final CommentRequest commentRequest,
|
@RequestBody final CommentRequest commentRequest,
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("comment_id") final Integer commentId) {
|
@PathVariable("comment_id") final Integer commentId) {
|
||||||
CommentResponse comment = commentService.updateComment(commentRequest, memberId, projectId, commentId);
|
return commentService.updateComment(commentRequest, memberId, projectId, commentId);
|
||||||
return new SuccessResponse<>(comment);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("/{comment_id}")
|
@DeleteMapping("/{comment_id}")
|
||||||
@SwaggerApiSuccess(description = "댓글을 성공적으로 생성합니다.")
|
@SwaggerApiSuccess(description = "댓글을 성공적으로 생성합니다.")
|
||||||
@Operation(summary = "댓글 생성", description = "댓글을 생성합니다.")
|
@Operation(summary = "댓글 생성", description = "댓글을 생성합니다.")
|
||||||
@SwaggerApiError({ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
public BaseResponse<Void> deleteComment(
|
public void deleteComment(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("comment_id") final Integer commentId) {
|
@PathVariable("comment_id") final Integer commentId) {
|
||||||
commentService.deleteComment(memberId, projectId, commentId);
|
commentService.deleteComment(memberId, projectId, commentId);
|
||||||
return new SuccessResponse<>();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -27,60 +27,55 @@ public class FolderController {
|
|||||||
@SwaggerApiSuccess(description = "폴더를 성공적으로 생성합니다.")
|
@SwaggerApiSuccess(description = "폴더를 성공적으로 생성합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public BaseResponse<FolderResponse> createFolder(
|
public FolderResponse createFolder(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@RequestBody final FolderRequest folderRequest) {
|
@RequestBody final FolderRequest folderRequest) {
|
||||||
FolderResponse folderResponse = folderService.createFolder(memberId, projectId, folderRequest);
|
return folderService.createFolder(memberId, projectId, folderRequest);
|
||||||
return SuccessResponse.of(folderResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "폴더 조회", description = "폴더의 내용을 조회합니다.")
|
@Operation(summary = "폴더 조회", description = "폴더의 내용을 조회합니다.")
|
||||||
@SwaggerApiSuccess(description = "폴더를 성공적으로 조회합니다.")
|
@SwaggerApiSuccess(description = "폴더를 성공적으로 조회합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@GetMapping("/{folder_id}")
|
@GetMapping("/{folder_id}")
|
||||||
public BaseResponse<FolderResponse> getFolderById(
|
public FolderResponse getFolderById(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("folder_id") final Integer folderId) {
|
@PathVariable("folder_id") final Integer folderId) {
|
||||||
FolderResponse folderResponse = folderService.getFolderById(memberId, projectId, folderId);
|
return folderService.getFolderById(memberId, projectId, folderId);
|
||||||
return SuccessResponse.of(folderResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "폴더 하위 리뷰해야할 목록만 조회", description = "폴더하위 리뷰해야할 목록을 조회합니다.")
|
@Operation(summary = "폴더 하위 리뷰해야할 목록만 조회", description = "폴더하위 리뷰해야할 목록을 조회합니다.")
|
||||||
@SwaggerApiSuccess(description = "폴더 하위 리뷰해야할 목록을 성공적으로 조회합니다.")
|
@SwaggerApiSuccess(description = "폴더 하위 리뷰해야할 목록을 성공적으로 조회합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@GetMapping("/{folder_id}/review")
|
@GetMapping("/{folder_id}/review")
|
||||||
public BaseResponse<FolderResponse> getFolderByIdWithNeedReview(
|
public FolderResponse getFolderByIdWithNeedReview(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("folder_id") final Integer folderId) {
|
@PathVariable("folder_id") final Integer folderId) {
|
||||||
FolderResponse folderResponse = folderService.getFolderByIdWithNeedReview(memberId, projectId, folderId);
|
return folderService.getFolderByIdWithNeedReview(memberId, projectId, folderId);
|
||||||
return SuccessResponse.of(folderResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "폴더 수정", description = "폴더 정보를 수정합니다.")
|
@Operation(summary = "폴더 수정", description = "폴더 정보를 수정합니다.")
|
||||||
@SwaggerApiSuccess(description = "폴더를 성공적으로 수정합니다.")
|
@SwaggerApiSuccess(description = "폴더를 성공적으로 수정합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@PutMapping("/{folder_id}")
|
@PutMapping("/{folder_id}")
|
||||||
public BaseResponse<FolderResponse> updateFolder(
|
public FolderResponse updateFolder(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("folder_id") final Integer folderId,
|
@PathVariable("folder_id") final Integer folderId,
|
||||||
@RequestBody FolderRequest folderRequest) {
|
@RequestBody FolderRequest folderRequest) {
|
||||||
FolderResponse folderResponse = folderService.updateFolder(memberId, projectId, folderId, folderRequest);
|
return folderService.updateFolder(memberId, projectId, folderId, folderRequest);
|
||||||
return SuccessResponse.of(folderResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "폴더 삭제", description = "폴더를 삭제합니다.")
|
@Operation(summary = "폴더 삭제", description = "폴더를 삭제합니다.")
|
||||||
@SwaggerApiSuccess(description = "폴더를 성공적으로 삭제합니다.")
|
@SwaggerApiSuccess(description = "폴더를 성공적으로 삭제합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@DeleteMapping("/{folder_id}")
|
@DeleteMapping("/{folder_id}")
|
||||||
public BaseResponse<Void> deleteFolder(
|
public void deleteFolder(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("folder_id") final Integer folderId) {
|
@PathVariable("folder_id") final Integer folderId) {
|
||||||
folderService.deleteFolder(memberId, projectId, folderId);
|
folderService.deleteFolder(memberId, projectId, folderId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -33,79 +33,66 @@ public class ImageController {
|
|||||||
@SwaggerApiSuccess(description = "이미지 목록을 성공적으로 업로드합니다.")
|
@SwaggerApiSuccess(description = "이미지 목록을 성공적으로 업로드합니다.")
|
||||||
@Operation(summary = "이미지 목록 업로드", description = "이미지 목록을 업로드합니다.")
|
@Operation(summary = "이미지 목록 업로드", description = "이미지 목록을 업로드합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
public BaseResponse<Void> uploadImage(
|
public void uploadImage(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("folder_id") final Integer folderId,
|
@PathVariable("folder_id") final Integer folderId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@Parameter(name = "폴더에 추가 할 이미지 리스트", description = "MultiPartFile을 imageList로 추가해준다.", example = "") @RequestBody final List<MultipartFile> imageList
|
@Parameter(name = "폴더에 추가 할 이미지 리스트", description = "MultiPartFile을 imageList로 추가해준다.", example = "") @RequestBody final List<MultipartFile> imageList) {
|
||||||
) {
|
|
||||||
log.debug("project: {} , folder: {}, imageList upload, 현재 로그인 중인 사용자 : {}, 이미지 개수 : {}", projectId, folderId, memberId, imageList.size());
|
log.debug("project: {} , folder: {}, imageList upload, 현재 로그인 중인 사용자 : {}, 이미지 개수 : {}", projectId, folderId, memberId, imageList.size());
|
||||||
imageService.uploadImageList(imageList, folderId, projectId, memberId);
|
imageService.uploadImageList(imageList, folderId, projectId, memberId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/{image_id}")
|
@GetMapping("/{image_id}")
|
||||||
@SwaggerApiSuccess(description = "이미지를 조회합니다.")
|
@SwaggerApiSuccess(description = "이미지를 조회합니다.")
|
||||||
@Operation(summary = "이미지 조회", description = "이미지 정보를 조회합니다.")
|
@Operation(summary = "이미지 조회", description = "이미지 정보를 조회합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
public BaseResponse<ImageResponse> getImageById(
|
public ImageResponse getImageById(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("folder_id") final Integer folderId,
|
@PathVariable("folder_id") final Integer folderId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("image_id") final Long imageId
|
@PathVariable("image_id") final Long imageId) {
|
||||||
) {
|
|
||||||
log.debug("project: {} , folder: {}, image: {}, 현재 로그인 중인 사용자 : {}", projectId, folderId, memberId, imageId);
|
log.debug("project: {} , folder: {}, image: {}, 현재 로그인 중인 사용자 : {}", projectId, folderId, memberId, imageId);
|
||||||
ImageResponse imageResponse = imageService.getImageById(projectId, folderId, imageId, memberId);
|
return imageService.getImageById(projectId, folderId, imageId, memberId);
|
||||||
return SuccessResponse.of(imageResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/{image_id}")
|
@PutMapping("/{image_id}")
|
||||||
@SwaggerApiSuccess(description = "이미지 폴더 이동.")
|
@SwaggerApiSuccess(description = "이미지 폴더 이동.")
|
||||||
@Operation(summary = "이미지 폴더 이동", description = "이미지가 위치한 폴더를 변경합니다.")
|
@Operation(summary = "이미지 폴더 이동", description = "이미지가 위치한 폴더를 변경합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.FOLDER_NOT_FOUND, ErrorCode.IMAGE_NOT_FOUND})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.FOLDER_NOT_FOUND, ErrorCode.IMAGE_NOT_FOUND})
|
||||||
public BaseResponse<Void> moveFolderImage(
|
public void moveFolderImage(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("folder_id") final Integer folderId,
|
@PathVariable("folder_id") final Integer folderId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("image_id") final Long imageId,
|
@PathVariable("image_id") final Long imageId,
|
||||||
@RequestBody final ImageMoveRequest imageMoveRequest
|
@RequestBody final ImageMoveRequest imageMoveRequest) {
|
||||||
) {
|
|
||||||
log.debug("project: {} , folder: {}, image: {}, 현재 로그인 중인 사용자 : {}, 이동하는 폴더 {}", projectId, folderId, memberId, imageId, imageMoveRequest.getMoveFolderId());
|
log.debug("project: {} , folder: {}, image: {}, 현재 로그인 중인 사용자 : {}, 이동하는 폴더 {}", projectId, folderId, memberId, imageId, imageMoveRequest.getMoveFolderId());
|
||||||
imageService.moveFolder(projectId, folderId, imageMoveRequest.getMoveFolderId(), imageId, memberId);
|
imageService.moveFolder(projectId, folderId, imageMoveRequest.getMoveFolderId(), imageId, memberId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@DeleteMapping("/{image_id}")
|
@DeleteMapping("/{image_id}")
|
||||||
@SwaggerApiSuccess(description = "이미지 삭제.")
|
@SwaggerApiSuccess(description = "이미지 삭제.")
|
||||||
@Operation(summary = "이미지 삭제", description = "폴더에서 해당 이미지를 제거합니다.")
|
@Operation(summary = "이미지 삭제", description = "폴더에서 해당 이미지를 제거합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.FOLDER_NOT_FOUND, ErrorCode.IMAGE_NOT_FOUND})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.FOLDER_NOT_FOUND, ErrorCode.IMAGE_NOT_FOUND})
|
||||||
public BaseResponse<Void> deleteImage(
|
public void deleteImage(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("folder_id") final Integer folderId,
|
@PathVariable("folder_id") final Integer folderId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("image_id") final Long imageId
|
@PathVariable("image_id") final Long imageId) {
|
||||||
) {
|
|
||||||
log.debug("project: {} , folder: {}, 삭제하려는 이미지: {}, 현재 로그인 중인 사용자 : {}", projectId, folderId, imageId, memberId);
|
log.debug("project: {} , folder: {}, 삭제하려는 이미지: {}, 현재 로그인 중인 사용자 : {}", projectId, folderId, imageId, memberId);
|
||||||
imageService.deleteImage(projectId, folderId, imageId, memberId);
|
imageService.deleteImage(projectId, folderId, imageId, memberId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/{image_id}/status")
|
@PutMapping("/{image_id}/status")
|
||||||
@SwaggerApiSuccess(description = "이미지 상태 변경.")
|
@SwaggerApiSuccess(description = "이미지 상태 변경.")
|
||||||
@Operation(summary = "이미지 상태 변경", description = "특정 이미지의 상태를 변경합니다.")
|
@Operation(summary = "이미지 상태 변경", description = "특정 이미지의 상태를 변경합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.FOLDER_NOT_FOUND, ErrorCode.IMAGE_NOT_FOUND})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.FOLDER_NOT_FOUND, ErrorCode.IMAGE_NOT_FOUND})
|
||||||
public BaseResponse<ImageResponse> changeImageStatus(
|
public ImageResponse changeImageStatus(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("folder_id") final Integer folderId,
|
@PathVariable("folder_id") final Integer folderId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@PathVariable("image_id") final Long imageId,
|
@PathVariable("image_id") final Long imageId,
|
||||||
@RequestBody final ImageStatusRequest imageStatusRequest
|
@RequestBody final ImageStatusRequest imageStatusRequest) {
|
||||||
) {
|
|
||||||
log.debug("project: {} , folder: {}, 수정하려는 이미지: {}, 현재 로그인 중인 사용자 : {}", projectId, folderId, imageId, memberId);
|
log.debug("project: {} , folder: {}, 수정하려는 이미지: {}, 현재 로그인 중인 사용자 : {}", projectId, folderId, imageId, memberId);
|
||||||
ImageResponse imageResponse = imageService.changeImageStatus(projectId, folderId, imageId, memberId, imageStatusRequest);
|
return imageService.changeImageStatus(projectId, folderId, imageId, memberId, imageStatusRequest);
|
||||||
return SuccessResponse.of(imageResponse);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -6,8 +6,6 @@ import com.worlabel.global.annotation.CurrentUser;
|
|||||||
import com.worlabel.global.config.swagger.SwaggerApiError;
|
import com.worlabel.global.config.swagger.SwaggerApiError;
|
||||||
import com.worlabel.global.config.swagger.SwaggerApiSuccess;
|
import com.worlabel.global.config.swagger.SwaggerApiSuccess;
|
||||||
import com.worlabel.global.exception.ErrorCode;
|
import com.worlabel.global.exception.ErrorCode;
|
||||||
import com.worlabel.global.response.BaseResponse;
|
|
||||||
import com.worlabel.global.response.SuccessResponse;
|
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
|
@ -34,105 +34,94 @@ public class ProjectController {
|
|||||||
@SwaggerApiSuccess(description = "프로젝트를 성공적으로 생성합니다.")
|
@SwaggerApiSuccess(description = "프로젝트를 성공적으로 생성합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@PostMapping("/workspaces/{workspace_id}/projects")
|
@PostMapping("/workspaces/{workspace_id}/projects")
|
||||||
public BaseResponse<ProjectResponse> createProject(
|
public ProjectResponse createProject(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("workspace_id") final Integer workspaceId,
|
@PathVariable("workspace_id") final Integer workspaceId,
|
||||||
@Valid @RequestBody final ProjectRequest projectRequest) {
|
@Valid @RequestBody final ProjectRequest projectRequest) {
|
||||||
ProjectResponse project = projectService.createProject(memberId, workspaceId, projectRequest);
|
return projectService.createProject(memberId, workspaceId, projectRequest);
|
||||||
return SuccessResponse.of(project);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "프로젝트 조회", description = "프로젝트를 조회합니다.")
|
@Operation(summary = "프로젝트 조회", description = "프로젝트를 조회합니다.")
|
||||||
@SwaggerApiSuccess(description = "프로젝트를 성공적으로 조회합니다.")
|
@SwaggerApiSuccess(description = "프로젝트를 성공적으로 조회합니다.")
|
||||||
@SwaggerApiError({ErrorCode.PROJECT_NOT_FOUND, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.PROJECT_NOT_FOUND, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.SERVER_ERROR})
|
||||||
@GetMapping("/projects/{project_id}")
|
@GetMapping("/projects/{project_id}")
|
||||||
public BaseResponse<ProjectResponse> getProject(@CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId) {
|
public ProjectResponse getProject(@CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId) {
|
||||||
ProjectResponse project = projectService.getProjectById(memberId, projectId);
|
return projectService.getProjectById(memberId, projectId);
|
||||||
return SuccessResponse.of(project);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "전체 프로젝트 조회", description = "모든 프로젝트를 조회합니다.")
|
@Operation(summary = "전체 프로젝트 조회", description = "모든 프로젝트를 조회합니다.")
|
||||||
@SwaggerApiSuccess(description = "전체 프로젝트를 성공적으로 조회합니다.")
|
@SwaggerApiSuccess(description = "전체 프로젝트를 성공적으로 조회합니다.")
|
||||||
@SwaggerApiError({ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.SERVER_ERROR})
|
||||||
@GetMapping("/workspaces/{workspace_id}/projects")
|
@GetMapping("/workspaces/{workspace_id}/projects")
|
||||||
public BaseResponse<ProjectResponses> getProjects(
|
public ProjectResponses getProjects(
|
||||||
@PathVariable("workspace_id") Integer workspaceId,
|
@PathVariable("workspace_id") Integer workspaceId,
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@Parameter(name = "마지막 프로젝트 id", description = "마지막 프로젝트 id를 넣으면 그 아래 부터 가져옴, 넣지않으면 가장 최신", example = "1") @RequestParam(required = false) Integer lastProjectId,
|
@Parameter(name = "마지막 프로젝트 id", description = "마지막 프로젝트 id를 넣으면 그 아래 부터 가져옴, 넣지않으면 가장 최신", example = "1") @RequestParam(required = false) Integer lastProjectId,
|
||||||
@Parameter(name = "가져올 프로젝트 수", description = "가져올 프로젝트 수 default = 10", example = "20") @RequestParam(defaultValue = "10") Integer limitPage) {
|
@Parameter(name = "가져올 프로젝트 수", description = "가져올 프로젝트 수 default = 10", example = "20") @RequestParam(defaultValue = "10") Integer limitPage) {
|
||||||
List<ProjectResponse> projects = projectService.getProjectsByWorkspaceId(workspaceId, memberId, lastProjectId, limitPage);
|
List<ProjectResponse> projects = projectService.getProjectsByWorkspaceId(workspaceId, memberId, lastProjectId, limitPage);
|
||||||
return SuccessResponse.of(ProjectResponses.from(projects));
|
return ProjectResponses.from(projects);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "프로젝트 수정", description = "프로젝트를 수정합니다.")
|
@Operation(summary = "프로젝트 수정", description = "프로젝트를 수정합니다.")
|
||||||
@SwaggerApiSuccess(description = "프로젝트를 성공적으로 수정합니다.")
|
@SwaggerApiSuccess(description = "프로젝트를 성공적으로 수정합니다.")
|
||||||
@SwaggerApiError({ErrorCode.PROJECT_NOT_FOUND, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.PROJECT_NOT_FOUND, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.SERVER_ERROR})
|
||||||
@PutMapping("/projects/{project_id}")
|
@PutMapping("/projects/{project_id}")
|
||||||
public BaseResponse<ProjectResponse> updateProject(
|
public ProjectResponse updateProject(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@Valid @RequestBody final ProjectRequest projectRequest) {
|
@Valid @RequestBody final ProjectRequest projectRequest) {
|
||||||
ProjectResponse project = projectService.updateProject(memberId, projectId, projectRequest);
|
return projectService.updateProject(memberId, projectId, projectRequest);
|
||||||
return SuccessResponse.of(project);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "프로젝트 모델 학습", description = "프로젝트 모델을 학습시킵니다..")
|
@Operation(summary = "프로젝트 모델 학습", description = "프로젝트 모델을 학습시킵니다..")
|
||||||
@SwaggerApiSuccess(description = "프로젝트 모델이 성공적으로 학습됩니다.")
|
@SwaggerApiSuccess(description = "프로젝트 모델이 성공적으로 학습됩니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@PostMapping("/projects/{project_id}/train")
|
@PostMapping("/projects/{project_id}/train")
|
||||||
public BaseResponse<Void> trainModel(
|
public void trainModel(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId) {
|
@PathVariable("project_id") final Integer projectId) {
|
||||||
projectService.train(memberId, projectId);
|
projectService.train(memberId, projectId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "프로젝트 삭제", description = "프로젝트를 삭제합니다.")
|
@Operation(summary = "프로젝트 삭제", description = "프로젝트를 삭제합니다.")
|
||||||
@SwaggerApiSuccess(description = "프로젝트를 성공적으로 삭제합니다.")
|
@SwaggerApiSuccess(description = "프로젝트를 성공적으로 삭제합니다.")
|
||||||
@SwaggerApiError({ErrorCode.PROJECT_NOT_FOUND, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.PROJECT_NOT_FOUND, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.SERVER_ERROR})
|
||||||
@DeleteMapping("/projects/{project_id}")
|
@DeleteMapping("/projects/{project_id}")
|
||||||
public BaseResponse<Void> deleteProject(@CurrentUser final Integer memberId,
|
public void deleteProject(@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId) {
|
@PathVariable("project_id") final Integer projectId) {
|
||||||
projectService.deleteProject(memberId, projectId);
|
projectService.deleteProject(memberId, projectId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "프로젝트 멤버 추가", description = "새로운 프로젝트 멤버를 추가합니다.")
|
@Operation(summary = "프로젝트 멤버 추가", description = "새로운 프로젝트 멤버를 추가합니다.")
|
||||||
@SwaggerApiSuccess(description = "프로젝트 멤버를 성공적으로 추가합니다.")
|
@SwaggerApiSuccess(description = "프로젝트 멤버를 성공적으로 추가합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@PostMapping("/projects/{project_id}/members")
|
@PostMapping("/projects/{project_id}/members")
|
||||||
public BaseResponse<Void> addProjectMember(
|
public void addProjectMember(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@Valid @RequestBody final ParticipantRequest participantRequest) {
|
@Valid @RequestBody final ParticipantRequest participantRequest) {
|
||||||
projectService.addProjectMember(memberId, projectId, participantRequest);
|
projectService.addProjectMember(memberId, projectId, participantRequest);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "프로젝트 멤버 권한 수정", description = "프로젝트 멤버 권한을 수정합니다.")
|
@Operation(summary = "프로젝트 멤버 권한 수정", description = "프로젝트 멤버 권한을 수정합니다.")
|
||||||
@SwaggerApiSuccess(description = "프로젝트 멤버 권한을 성공적으로 수정합니다.")
|
@SwaggerApiSuccess(description = "프로젝트 멤버 권한을 성공적으로 수정합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@PutMapping("/projects/{project_id}/members")
|
@PutMapping("/projects/{project_id}/members")
|
||||||
public BaseResponse<Void> changeProjectMember(
|
public void changeProjectMember(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@Valid @RequestBody final ParticipantRequest participantRequest) {
|
@Valid @RequestBody final ParticipantRequest participantRequest) {
|
||||||
projectService.changeProjectMember(memberId, projectId, participantRequest);
|
projectService.changeProjectMember(memberId, projectId, participantRequest);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "프로젝트 멤버 제거", description = "프로젝트 멤버를 제거합니다.")
|
@Operation(summary = "프로젝트 멤버 제거", description = "프로젝트 멤버를 제거합니다.")
|
||||||
@SwaggerApiSuccess(description = "프로젝트 멤버를 성공적으로 제거합니다.")
|
@SwaggerApiSuccess(description = "프로젝트 멤버를 성공적으로 제거합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@DeleteMapping("/projects/{project_id}/members")
|
@DeleteMapping("/projects/{project_id}/members")
|
||||||
public BaseResponse<Void> removeProjectMember(
|
public void removeProjectMember(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("project_id") final Integer projectId,
|
@PathVariable("project_id") final Integer projectId,
|
||||||
@Valid @RequestBody final Integer removeMemberId) {
|
@Valid @RequestBody final Integer removeMemberId) {
|
||||||
projectService.removeProjectMember(memberId, projectId, removeMemberId);
|
projectService.removeProjectMember(memberId, projectId, removeMemberId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -31,74 +31,68 @@ public class WorkspaceController {
|
|||||||
@SwaggerApiSuccess(description = "워크스페이스를 성공적으로 생성합니다.")
|
@SwaggerApiSuccess(description = "워크스페이스를 성공적으로 생성합니다.")
|
||||||
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR})
|
||||||
@PostMapping
|
@PostMapping
|
||||||
public BaseResponse<WorkspaceResponse> createWorkspace(@CurrentUser final Integer memberId, @Valid @RequestBody final WorkspaceRequest workspaceRequest) {
|
public WorkspaceResponse createWorkspace(@CurrentUser final Integer memberId, @Valid @RequestBody final WorkspaceRequest workspaceRequest) {
|
||||||
WorkspaceResponse workspace = workspaceService.createWorkspace(memberId, workspaceRequest);
|
return workspaceService.createWorkspace(memberId, workspaceRequest);
|
||||||
return SuccessResponse.of(workspace);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "특정 워크스페이스 조회", description = "특정 워크스페이스를 조회합니다.")
|
@Operation(summary = "특정 워크스페이스 조회", description = "특정 워크스페이스를 조회합니다.")
|
||||||
@SwaggerApiSuccess(description = "특정 워크스페이스를 성공적으로 조회합니다.")
|
@SwaggerApiSuccess(description = "특정 워크스페이스를 성공적으로 조회합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
@GetMapping("/{workspace_id}")
|
@GetMapping("/{workspace_id}")
|
||||||
public BaseResponse<WorkspaceResponse> getWorkspace(@CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId) {
|
public WorkspaceResponse getWorkspace(@CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId) {
|
||||||
WorkspaceResponse workspace = workspaceService.getWorkspaceById(memberId, workspaceId);
|
return workspaceService.getWorkspaceById(memberId, workspaceId);
|
||||||
return SuccessResponse.of(workspace);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "전체 워크스페이스 조회", description = "모든 워크스페이스를 조회합니다.")
|
@Operation(summary = "전체 워크스페이스 조회", description = "모든 워크스페이스를 조회합니다.")
|
||||||
@SwaggerApiSuccess(description = "전체 워크스페이스를 성공적으로 조회합니다.")
|
@SwaggerApiSuccess(description = "전체 워크스페이스를 성공적으로 조회합니다.")
|
||||||
@SwaggerApiError({ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.SERVER_ERROR})
|
||||||
@GetMapping
|
@GetMapping
|
||||||
public BaseResponse<WorkspaceResponses> getAllWorkspaces(
|
public WorkspaceResponses getAllWorkspaces(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@Parameter(name = "마지막 워크스페이스 id", description = "마지막 워크스페이스 id를 넣으면 그 아래 부터 가져옴, 넣지않으면 가장 최신", example = "1") @RequestParam(required = false) Integer lastWorkspaceId,
|
@Parameter(name = "마지막 워크스페이스 id", description = "마지막 워크스페이스 id를 넣으면 그 아래 부터 가져옴, 넣지않으면 가장 최신", example = "1") @RequestParam(required = false) Integer lastWorkspaceId,
|
||||||
@Parameter(name = "가져올 워크스페이스 수", description = "가져올 워크스페이스 수 default = 10", example = "20") @RequestParam(defaultValue = "10") Integer limitPage) {
|
@Parameter(name = "가져올 워크스페이스 수", description = "가져올 워크스페이스 수 default = 10", example = "20") @RequestParam(defaultValue = "10") Integer limitPage) {
|
||||||
List<WorkspaceResponse> workspaces = workspaceService.getAllWorkspaces(memberId, lastWorkspaceId, limitPage);
|
List<WorkspaceResponse> workspaces = workspaceService.getAllWorkspaces(memberId, lastWorkspaceId, limitPage);
|
||||||
return SuccessResponse.of(WorkspaceResponses.from(workspaces));
|
return WorkspaceResponses.from(workspaces);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "워크스페이스 수정", description = "특정 워크스페이스를 수정합니다.")
|
@Operation(summary = "워크스페이스 수정", description = "특정 워크스페이스를 수정합니다.")
|
||||||
@SwaggerApiSuccess(description = "특정 워크스페이스를 성공적으로 수정합니다.")
|
@SwaggerApiSuccess(description = "특정 워크스페이스를 성공적으로 수정합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
@PutMapping("/{workspace_id}")
|
@PutMapping("/{workspace_id}")
|
||||||
public BaseResponse<WorkspaceResponse> updateWorkspace(
|
public WorkspaceResponse updateWorkspace(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("workspace_id") final Integer workspaceId,
|
@PathVariable("workspace_id") final Integer workspaceId,
|
||||||
@Valid @RequestBody final WorkspaceRequest updatedWorkspace) {
|
@Valid @RequestBody final WorkspaceRequest updatedWorkspace ) {
|
||||||
WorkspaceResponse workspace = workspaceService.updateWorkspace(memberId, workspaceId, updatedWorkspace);
|
return workspaceService.updateWorkspace(memberId, workspaceId, updatedWorkspace);
|
||||||
return SuccessResponse.of(workspace);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "워크스페이스 삭제", description = "특정 워크스페이스를 삭제합니다.")
|
@Operation(summary = "워크스페이스 삭제", description = "특정 워크스페이스를 삭제합니다.")
|
||||||
@SwaggerApiSuccess(description = "특정 워크스페이스를 성공적으로 삭제합니다.")
|
@SwaggerApiSuccess(description = "특정 워크스페이스를 성공적으로 삭제합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
@DeleteMapping("/{workspace_id}")
|
@DeleteMapping("/{workspace_id}")
|
||||||
public BaseResponse<Void> deleteWorkspace(@CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId) {
|
public void deleteWorkspace(@CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId) {
|
||||||
workspaceService.deleteWorkspace(memberId, workspaceId);
|
workspaceService.deleteWorkspace(memberId, workspaceId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "워크스페이스 멤버 추가", description = "특정 워크스페이스에 멤버를 추가합니다.")
|
@Operation(summary = "워크스페이스 멤버 추가", description = "특정 워크스페이스에 멤버를 추가합니다.")
|
||||||
@SwaggerApiSuccess(description = "특정 워크스페이스에 멤버를 성공적으로 추가합니다.")
|
@SwaggerApiSuccess(description = "특정 워크스페이스에 멤버를 성공적으로 추가합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
@PostMapping("/{workspace_id}/members/{member_id}")
|
@PostMapping("/{workspace_id}/members/{member_id}")
|
||||||
public BaseResponse<Void> addWorkspaceMember(
|
public void addWorkspaceMember(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("workspace_id") final Integer workspaceId,
|
@PathVariable("workspace_id") final Integer workspaceId,
|
||||||
@PathVariable("member_id") final Integer newMemberId) {
|
@PathVariable("member_id") final Integer newMemberId) {
|
||||||
workspaceService.addWorkspaceMember(memberId, workspaceId, newMemberId);
|
workspaceService.addWorkspaceMember(memberId, workspaceId, newMemberId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Operation(summary = "워크스페이스 멤버 제거", description = "특정 워크스페이스에 멤버를 제거합니다.")
|
@Operation(summary = "워크스페이스 멤버 제거", description = "특정 워크스페이스에 멤버를 제거합니다.")
|
||||||
@SwaggerApiSuccess(description = "특정 워크스페이스에 멤버를 성공적으로 제거합니다.")
|
@SwaggerApiSuccess(description = "특정 워크스페이스에 멤버를 성공적으로 제거합니다.")
|
||||||
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
@SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR})
|
||||||
@DeleteMapping("/{workspace_id}/members/{member_id}")
|
@DeleteMapping("/{workspace_id}/members/{member_id}")
|
||||||
public BaseResponse<Void> removeWorkspaceMember(
|
public void removeWorkspaceMember(
|
||||||
@CurrentUser final Integer memberId,
|
@CurrentUser final Integer memberId,
|
||||||
@PathVariable("workspace_id") final Integer workspaceId,
|
@PathVariable("workspace_id") final Integer workspaceId,
|
||||||
@PathVariable("member_id") final Integer newMemberId) {
|
@PathVariable("member_id") final Integer newMemberId) {
|
||||||
workspaceService.removeWorkspaceMember(memberId, workspaceId, newMemberId);
|
workspaceService.removeWorkspaceMember(memberId, workspaceId, newMemberId);
|
||||||
return SuccessResponse.empty();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,5 +1,6 @@
|
|||||||
package com.worlabel.global.advice;
|
package com.worlabel.global.advice;
|
||||||
|
|
||||||
|
import com.amazonaws.Response;
|
||||||
import com.worlabel.global.exception.CustomException;
|
import com.worlabel.global.exception.CustomException;
|
||||||
import com.worlabel.global.exception.ErrorCode;
|
import com.worlabel.global.exception.ErrorCode;
|
||||||
import com.worlabel.global.response.ErrorResponse;
|
import com.worlabel.global.response.ErrorResponse;
|
||||||
@ -30,55 +31,31 @@ public class CustomControllerAdvice {
|
|||||||
|
|
||||||
@ExceptionHandler(Exception.class)
|
@ExceptionHandler(Exception.class)
|
||||||
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
|
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
|
||||||
public ErrorResponse handleException(Exception e, HttpServletRequest request) {
|
public void handleException(Exception e, HttpServletRequest request) {
|
||||||
log.error("", e);
|
|
||||||
sendNotification(e, request);
|
sendNotification(e, request);
|
||||||
return ErrorResponse.of(new CustomException(ErrorCode.SERVER_ERROR));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ExceptionHandler({HttpMessageNotReadableException.class})
|
|
||||||
public ErrorResponse handleReadableException(Exception e,HttpServletRequest request) {
|
|
||||||
log.error("",e);
|
|
||||||
sendNotification(e, request);
|
|
||||||
return ErrorResponse.of(new CustomException(ErrorCode.BAD_REQUEST));
|
|
||||||
}
|
|
||||||
|
|
||||||
@ExceptionHandler(NoResourceFoundException.class)
|
|
||||||
@ResponseStatus(HttpStatus.NOT_FOUND)
|
@ResponseStatus(HttpStatus.NOT_FOUND)
|
||||||
public ErrorResponse handleNoHandlerFoundException(NoResourceFoundException e, HttpServletRequest request) {
|
@ExceptionHandler({NoResourceFoundException.class})
|
||||||
log.error("", e);
|
public void handleNotFountException(NoResourceFoundException e, HttpServletRequest request) {
|
||||||
sendNotification(e, request);
|
sendNotification(e, request);
|
||||||
return ErrorResponse.of(new CustomException(ErrorCode.INVALID_URL));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ExceptionHandler({MissingServletRequestParameterException.class})
|
@ResponseStatus(HttpStatus.BAD_REQUEST)
|
||||||
public ErrorResponse handleRequestParameterException(Exception e, HttpServletRequest request) {
|
@ExceptionHandler({HttpRequestMethodNotSupportedException.class, MissingServletRequestParameterException.class, HttpMessageNotReadableException.class})
|
||||||
log.error("",e);
|
public void handleBadRequestException(Exception e, HttpServletRequest request) {
|
||||||
sendNotification(e, request);
|
sendNotification(e, request);
|
||||||
return ErrorResponse.of(new CustomException(ErrorCode.EMPTY_REQUEST_PARAMETER));
|
|
||||||
}
|
|
||||||
|
|
||||||
@ExceptionHandler(HttpRequestMethodNotSupportedException.class)
|
|
||||||
public ErrorResponse handleRequestMethodNotSupportedException(Exception e, HttpServletRequest request) {
|
|
||||||
log.error("", e);
|
|
||||||
sendNotification(e, request);
|
|
||||||
return ErrorResponse.of(new CustomException(ErrorCode.BAD_REQUEST, "지원하지 않는 API입니다. 요청을 확인해주세요"));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ExceptionHandler(CustomException.class)
|
@ExceptionHandler(CustomException.class)
|
||||||
public ResponseEntity<ErrorResponse> handleCustomException(CustomException e, HttpServletRequest request) {
|
public ResponseEntity<Void> handleCustomException(CustomException e, HttpServletRequest request) {
|
||||||
log.error("", e);
|
|
||||||
sendNotification(e, request);
|
sendNotification(e, request);
|
||||||
return ResponseEntity.status(e.getErrorCode().getStatus())
|
return ResponseEntity.status(e.getErrorCode().getStatus()).build();
|
||||||
.body(ErrorResponse.of(e));
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
private void sendNotification(Exception e, HttpServletRequest request) {
|
private void sendNotification(Exception e, HttpServletRequest request) {
|
||||||
// TODO: 필요시 주석 처리
|
log.error("", e);
|
||||||
notificationManager.sendNotification(e, request.getRequestURI(),getParams(request));
|
notificationManager.sendNotification(e, request.getRequestURI(), getParams(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
private String getParams(HttpServletRequest req) {
|
private String getParams(HttpServletRequest req) {
|
||||||
|
Loading…
Reference in New Issue
Block a user