From f7862c7bcb5f6733a7319d4d11fef88332716425 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9A=A9=EC=88=98?= Date: Fri, 13 Sep 2024 22:54:38 +0900 Subject: [PATCH 1/2] =?UTF-8?q?Refactor:=20=EC=9D=91=EB=8B=B5=20=EA=B0=9D?= =?UTF-8?q?=EC=B2=B4=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../auth/controller/AuthController.java | 14 +++---- .../comment/contoller/CommentController.java | 22 +++++------ .../folder/controller/FolderController.java | 23 +++++------ .../image/controller/ImageController.java | 37 ++++++------------ .../label/controller/LabelController.java | 12 ++---- .../project/controller/ProjectController.java | 39 +++++++------------ .../controller/WorkspaceController.java | 30 ++++++-------- .../global/advice/CustomControllerAdvice.java | 6 +-- 8 files changed, 67 insertions(+), 116 deletions(-) diff --git a/backend/src/main/java/com/worlabel/domain/auth/controller/AuthController.java b/backend/src/main/java/com/worlabel/domain/auth/controller/AuthController.java index 5f8caed..ba9e9b0 100644 --- a/backend/src/main/java/com/worlabel/domain/auth/controller/AuthController.java +++ b/backend/src/main/java/com/worlabel/domain/auth/controller/AuthController.java @@ -46,10 +46,7 @@ public class AuthController { @SwaggerApiSuccess(description = "Return Access Token") @SwaggerApiError({ErrorCode.INVALID_TOKEN, ErrorCode.USER_ALREADY_SIGN_OUT, ErrorCode.REFRESH_TOKEN_EXPIRED, ErrorCode.INVALID_REFRESH_TOKEN}) @PostMapping("/reissue") - public SuccessResponse reissue( - HttpServletRequest request, - HttpServletResponse response - ) { + public AccessTokenResponse reissue(HttpServletRequest request, HttpServletResponse response) { log.debug("reissue request"); String refresh = parseRefreshCookie(request); try { @@ -59,7 +56,7 @@ public class AuthController { response.addCookie(createCookie(newToken.getRefreshToken())); authService.saveRefreshToken(id, newToken.getRefreshToken(),refreshExpiry); - return SuccessResponse.of(AccessTokenResponse.from(newToken.getAccessToken())); + return AccessTokenResponse.from(newToken.getAccessToken()); } catch (CustomException e) { throw e; } catch (Exception e) { @@ -71,9 +68,8 @@ public class AuthController { @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}) @GetMapping("/profile") - public SuccessResponse getMemberInfo(@CurrentUser Integer currentMember){ - MemberResponse memberResponse = memberService.getMemberId(currentMember); - return SuccessResponse.of(memberResponse); + public MemberResponse getMemberInfo(@CurrentUser Integer currentMember){ + return memberService.getMemberId(currentMember); } private static String parseRefreshCookie(HttpServletRequest request) { @@ -93,7 +89,7 @@ public class AuthController { cookie.setMaxAge((int) (refreshExpiry / 1000)); cookie.setPath("/"); cookie.setHttpOnly(true); - // cookie.setSecure(true); // 배포 시 HTTPS에서 사용 + cookie.setSecure(true); // 배포 시 HTTPS에서 사용 return cookie; } } diff --git a/backend/src/main/java/com/worlabel/domain/comment/contoller/CommentController.java b/backend/src/main/java/com/worlabel/domain/comment/contoller/CommentController.java index 1291f14..df504dd 100644 --- a/backend/src/main/java/com/worlabel/domain/comment/contoller/CommentController.java +++ b/backend/src/main/java/com/worlabel/domain/comment/contoller/CommentController.java @@ -29,61 +29,57 @@ public class CommentController { @SwaggerApiSuccess(description = "댓글 목록을 성공적으로 조회합니다.") @Operation(summary = "댓글 목록 조회", description = "댓글 목록을 조회합니다.") @SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) - public BaseResponse getAllComments( + public CommentResponses getAllComments( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @PathVariable("image_id") final Long imageId) { List comments = commentService.getAllComments(memberId, projectId, imageId); - return new SuccessResponse<>(CommentResponses.from(comments)); + return CommentResponses.from(comments); } @GetMapping("/{comment_id}") @SwaggerApiSuccess(description = "댓글을 성공적으로 조회합니다.") @Operation(summary = "댓글 조회", description = "댓글을 조회합니다.") @SwaggerApiError({ErrorCode.COMMENT_NOT_FOUND, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) - public BaseResponse getCommentById( + public CommentResponse getCommentById( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @PathVariable("comment_id") final Integer commentId) { - CommentResponse comment = commentService.getCommentById(memberId, projectId, commentId); - return new SuccessResponse<>(comment); + return commentService.getCommentById(memberId, projectId, commentId); } @PostMapping("/images/{image_id}") @SwaggerApiSuccess(description = "댓글을 성공적으로 생성합니다.") @Operation(summary = "댓글 생성", description = "댓글을 생성합니다.") @SwaggerApiError({ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) - public BaseResponse createComment( + public CommentResponse createComment( @RequestBody final CommentRequest commentRequest, @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @PathVariable("image_id") final Long imageId) { - CommentResponse comment = commentService.createComment(commentRequest, memberId, projectId, imageId); - return new SuccessResponse<>(comment); + return commentService.createComment(commentRequest, memberId, projectId, imageId); } @PutMapping("/{comment_id}") @SwaggerApiSuccess(description = "댓글을 성공적으로 수정합니다.") @Operation(summary = "댓글 수정", description = "댓글을 수정합니다.") @SwaggerApiError({ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) - public BaseResponse updateComment( + public CommentResponse updateComment( @RequestBody final CommentRequest commentRequest, @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @PathVariable("comment_id") final Integer commentId) { - CommentResponse comment = commentService.updateComment(commentRequest, memberId, projectId, commentId); - return new SuccessResponse<>(comment); + return commentService.updateComment(commentRequest, memberId, projectId, commentId); } @DeleteMapping("/{comment_id}") @SwaggerApiSuccess(description = "댓글을 성공적으로 생성합니다.") @Operation(summary = "댓글 생성", description = "댓글을 생성합니다.") @SwaggerApiError({ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) - public BaseResponse deleteComment( + public void deleteComment( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @PathVariable("comment_id") final Integer commentId) { commentService.deleteComment(memberId, projectId, commentId); - return new SuccessResponse<>(); } } diff --git a/backend/src/main/java/com/worlabel/domain/folder/controller/FolderController.java b/backend/src/main/java/com/worlabel/domain/folder/controller/FolderController.java index 53e93e3..ce3ec14 100644 --- a/backend/src/main/java/com/worlabel/domain/folder/controller/FolderController.java +++ b/backend/src/main/java/com/worlabel/domain/folder/controller/FolderController.java @@ -27,60 +27,55 @@ public class FolderController { @SwaggerApiSuccess(description = "폴더를 성공적으로 생성합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @PostMapping - public BaseResponse createFolder( + public FolderResponse createFolder( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @RequestBody final FolderRequest folderRequest) { - FolderResponse folderResponse = folderService.createFolder(memberId, projectId, folderRequest); - return SuccessResponse.of(folderResponse); + return folderService.createFolder(memberId, projectId, folderRequest); } @Operation(summary = "폴더 조회", description = "폴더의 내용을 조회합니다.") @SwaggerApiSuccess(description = "폴더를 성공적으로 조회합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @GetMapping("/{folder_id}") - public BaseResponse getFolderById( + public FolderResponse getFolderById( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @PathVariable("folder_id") final Integer folderId) { - FolderResponse folderResponse = folderService.getFolderById(memberId, projectId, folderId); - return SuccessResponse.of(folderResponse); + return folderService.getFolderById(memberId, projectId, folderId); } @Operation(summary = "폴더 하위 리뷰해야할 목록만 조회", description = "폴더하위 리뷰해야할 목록을 조회합니다.") @SwaggerApiSuccess(description = "폴더 하위 리뷰해야할 목록을 성공적으로 조회합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @GetMapping("/{folder_id}/review") - public BaseResponse getFolderByIdWithNeedReview( + public FolderResponse getFolderByIdWithNeedReview( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @PathVariable("folder_id") final Integer folderId) { - FolderResponse folderResponse = folderService.getFolderByIdWithNeedReview(memberId, projectId, folderId); - return SuccessResponse.of(folderResponse); + return folderService.getFolderByIdWithNeedReview(memberId, projectId, folderId); } @Operation(summary = "폴더 수정", description = "폴더 정보를 수정합니다.") @SwaggerApiSuccess(description = "폴더를 성공적으로 수정합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @PutMapping("/{folder_id}") - public BaseResponse updateFolder( + public FolderResponse updateFolder( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @PathVariable("folder_id") final Integer folderId, @RequestBody FolderRequest folderRequest) { - FolderResponse folderResponse = folderService.updateFolder(memberId, projectId, folderId, folderRequest); - return SuccessResponse.of(folderResponse); + return folderService.updateFolder(memberId, projectId, folderId, folderRequest); } @Operation(summary = "폴더 삭제", description = "폴더를 삭제합니다.") @SwaggerApiSuccess(description = "폴더를 성공적으로 삭제합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @DeleteMapping("/{folder_id}") - public BaseResponse deleteFolder( + public void deleteFolder( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @PathVariable("folder_id") final Integer folderId) { folderService.deleteFolder(memberId, projectId, folderId); - return SuccessResponse.empty(); } } diff --git a/backend/src/main/java/com/worlabel/domain/image/controller/ImageController.java b/backend/src/main/java/com/worlabel/domain/image/controller/ImageController.java index a0e1d64..b158946 100644 --- a/backend/src/main/java/com/worlabel/domain/image/controller/ImageController.java +++ b/backend/src/main/java/com/worlabel/domain/image/controller/ImageController.java @@ -33,79 +33,66 @@ public class ImageController { @SwaggerApiSuccess(description = "이미지 목록을 성공적으로 업로드합니다.") @Operation(summary = "이미지 목록 업로드", description = "이미지 목록을 업로드합니다.") @SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) - public BaseResponse uploadImage( + public void uploadImage( @CurrentUser final Integer memberId, @PathVariable("folder_id") final Integer folderId, @PathVariable("project_id") final Integer projectId, - @Parameter(name = "폴더에 추가 할 이미지 리스트", description = "MultiPartFile을 imageList로 추가해준다.", example = "") @RequestBody final List imageList - ) { + @Parameter(name = "폴더에 추가 할 이미지 리스트", description = "MultiPartFile을 imageList로 추가해준다.", example = "") @RequestBody final List imageList) { log.debug("project: {} , folder: {}, imageList upload, 현재 로그인 중인 사용자 : {}, 이미지 개수 : {}", projectId, folderId, memberId, imageList.size()); imageService.uploadImageList(imageList, folderId, projectId, memberId); - return SuccessResponse.empty(); } @GetMapping("/{image_id}") @SwaggerApiSuccess(description = "이미지를 조회합니다.") @Operation(summary = "이미지 조회", description = "이미지 정보를 조회합니다.") @SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) - public BaseResponse getImageById( + public ImageResponse getImageById( @CurrentUser final Integer memberId, @PathVariable("folder_id") final Integer folderId, @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); - ImageResponse imageResponse = imageService.getImageById(projectId, folderId, imageId, memberId); - return SuccessResponse.of(imageResponse); + return imageService.getImageById(projectId, folderId, imageId, memberId); } @PutMapping("/{image_id}") @SwaggerApiSuccess(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}) - public BaseResponse moveFolderImage( + public void moveFolderImage( @CurrentUser final Integer memberId, @PathVariable("folder_id") final Integer folderId, @PathVariable("project_id") final Integer projectId, @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()); imageService.moveFolder(projectId, folderId, imageMoveRequest.getMoveFolderId(), imageId, memberId); - return SuccessResponse.empty(); } @DeleteMapping("/{image_id}") @SwaggerApiSuccess(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}) - public BaseResponse deleteImage( + public void deleteImage( @CurrentUser final Integer memberId, @PathVariable("folder_id") final Integer folderId, @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); imageService.deleteImage(projectId, folderId, imageId, memberId); - return SuccessResponse.empty(); } @PutMapping("/{image_id}/status") @SwaggerApiSuccess(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}) - public BaseResponse changeImageStatus( + public ImageResponse changeImageStatus( @CurrentUser final Integer memberId, @PathVariable("folder_id") final Integer folderId, @PathVariable("project_id") final Integer projectId, @PathVariable("image_id") final Long imageId, - @RequestBody final ImageStatusRequest imageStatusRequest - ) { + @RequestBody final ImageStatusRequest imageStatusRequest) { log.debug("project: {} , folder: {}, 수정하려는 이미지: {}, 현재 로그인 중인 사용자 : {}", projectId, folderId, imageId, memberId); - ImageResponse imageResponse = imageService.changeImageStatus(projectId, folderId, imageId, memberId, imageStatusRequest); - return SuccessResponse.of(imageResponse); + return imageService.changeImageStatus(projectId, folderId, imageId, memberId, imageStatusRequest); } - - - } diff --git a/backend/src/main/java/com/worlabel/domain/label/controller/LabelController.java b/backend/src/main/java/com/worlabel/domain/label/controller/LabelController.java index ac7b67b..fd83527 100644 --- a/backend/src/main/java/com/worlabel/domain/label/controller/LabelController.java +++ b/backend/src/main/java/com/worlabel/domain/label/controller/LabelController.java @@ -30,24 +30,20 @@ public class LabelController { @SwaggerApiSuccess(description = "해당 프로젝트가 오토 레이블링 됩니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @PostMapping("/auto") - public BaseResponse projectAutoLabeling( + public void projectAutoLabeling( @CurrentUser final Integer memberId, - @PathVariable("project_id") final Integer projectId - ) { + @PathVariable("project_id") final Integer projectId) { labelService.autoLabeling(projectId, memberId); - return SuccessResponse.empty(); } @Operation(summary = "이미지 단위 레이블링", description = "진행한 레이블링을 저장합니다.") @SwaggerApiSuccess(description = "해당 이미지에 대한 레이블링을 저장합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @PostMapping("/image/{image_id}") - public BaseResponse imageLabeling( + public void imageLabeling( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, - @PathVariable("image_id") final Integer imageId - ) { + @PathVariable("image_id") final Integer imageId) { labelService.save(imageId); - return SuccessResponse.empty(); } } diff --git a/backend/src/main/java/com/worlabel/domain/project/controller/ProjectController.java b/backend/src/main/java/com/worlabel/domain/project/controller/ProjectController.java index bef2493..dcb0051 100644 --- a/backend/src/main/java/com/worlabel/domain/project/controller/ProjectController.java +++ b/backend/src/main/java/com/worlabel/domain/project/controller/ProjectController.java @@ -34,105 +34,94 @@ public class ProjectController { @SwaggerApiSuccess(description = "프로젝트를 성공적으로 생성합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @PostMapping("/workspaces/{workspace_id}/projects") - public BaseResponse createProject( + public ProjectResponse createProject( @CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId, @Valid @RequestBody final ProjectRequest projectRequest) { - ProjectResponse project = projectService.createProject(memberId, workspaceId, projectRequest); - return SuccessResponse.of(project); + return projectService.createProject(memberId, workspaceId, projectRequest); } @Operation(summary = "프로젝트 조회", description = "프로젝트를 조회합니다.") @SwaggerApiSuccess(description = "프로젝트를 성공적으로 조회합니다.") @SwaggerApiError({ErrorCode.PROJECT_NOT_FOUND, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.SERVER_ERROR}) @GetMapping("/projects/{project_id}") - public BaseResponse getProject(@CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId) { - ProjectResponse project = projectService.getProjectById(memberId, projectId); - return SuccessResponse.of(project); + public ProjectResponse getProject(@CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId) { + return projectService.getProjectById(memberId, projectId); } @Operation(summary = "전체 프로젝트 조회", description = "모든 프로젝트를 조회합니다.") @SwaggerApiSuccess(description = "전체 프로젝트를 성공적으로 조회합니다.") @SwaggerApiError({ErrorCode.SERVER_ERROR}) @GetMapping("/workspaces/{workspace_id}/projects") - public BaseResponse getProjects( + public ProjectResponses getProjects( @PathVariable("workspace_id") Integer workspaceId, @CurrentUser final Integer memberId, @Parameter(name = "마지막 프로젝트 id", description = "마지막 프로젝트 id를 넣으면 그 아래 부터 가져옴, 넣지않으면 가장 최신", example = "1") @RequestParam(required = false) Integer lastProjectId, @Parameter(name = "가져올 프로젝트 수", description = "가져올 프로젝트 수 default = 10", example = "20") @RequestParam(defaultValue = "10") Integer limitPage) { List projects = projectService.getProjectsByWorkspaceId(workspaceId, memberId, lastProjectId, limitPage); - return SuccessResponse.of(ProjectResponses.from(projects)); + return ProjectResponses.from(projects); } @Operation(summary = "프로젝트 수정", description = "프로젝트를 수정합니다.") @SwaggerApiSuccess(description = "프로젝트를 성공적으로 수정합니다.") @SwaggerApiError({ErrorCode.PROJECT_NOT_FOUND, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.SERVER_ERROR}) @PutMapping("/projects/{project_id}") - public BaseResponse updateProject( + public ProjectResponse updateProject( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @Valid @RequestBody final ProjectRequest projectRequest) { - ProjectResponse project = projectService.updateProject(memberId, projectId, projectRequest); - return SuccessResponse.of(project); + return projectService.updateProject(memberId, projectId, projectRequest); } @Operation(summary = "프로젝트 모델 학습", description = "프로젝트 모델을 학습시킵니다..") @SwaggerApiSuccess(description = "프로젝트 모델이 성공적으로 학습됩니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @PostMapping("/projects/{project_id}/train") - public BaseResponse trainModel( + public void trainModel( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId) { projectService.train(memberId, projectId); - return SuccessResponse.empty(); } @Operation(summary = "프로젝트 삭제", description = "프로젝트를 삭제합니다.") @SwaggerApiSuccess(description = "프로젝트를 성공적으로 삭제합니다.") @SwaggerApiError({ErrorCode.PROJECT_NOT_FOUND, ErrorCode.PARTICIPANT_EDITOR_UNAUTHORIZED, ErrorCode.SERVER_ERROR}) @DeleteMapping("/projects/{project_id}") - public BaseResponse deleteProject(@CurrentUser final Integer memberId, - @PathVariable("project_id") final Integer projectId) { + public void deleteProject(@CurrentUser final Integer memberId, + @PathVariable("project_id") final Integer projectId) { projectService.deleteProject(memberId, projectId); - return SuccessResponse.empty(); } @Operation(summary = "프로젝트 멤버 추가", description = "새로운 프로젝트 멤버를 추가합니다.") @SwaggerApiSuccess(description = "프로젝트 멤버를 성공적으로 추가합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @PostMapping("/projects/{project_id}/members") - public BaseResponse addProjectMember( + public void addProjectMember( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @Valid @RequestBody final ParticipantRequest participantRequest) { projectService.addProjectMember(memberId, projectId, participantRequest); - return SuccessResponse.empty(); } @Operation(summary = "프로젝트 멤버 권한 수정", description = "프로젝트 멤버 권한을 수정합니다.") @SwaggerApiSuccess(description = "프로젝트 멤버 권한을 성공적으로 수정합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @PutMapping("/projects/{project_id}/members") - public BaseResponse changeProjectMember( + public void changeProjectMember( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @Valid @RequestBody final ParticipantRequest participantRequest) { projectService.changeProjectMember(memberId, projectId, participantRequest); - return SuccessResponse.empty(); } @Operation(summary = "프로젝트 멤버 제거", description = "프로젝트 멤버를 제거합니다.") @SwaggerApiSuccess(description = "프로젝트 멤버를 성공적으로 제거합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @DeleteMapping("/projects/{project_id}/members") - public BaseResponse removeProjectMember( + public void removeProjectMember( @CurrentUser final Integer memberId, @PathVariable("project_id") final Integer projectId, @Valid @RequestBody final Integer removeMemberId) { projectService.removeProjectMember(memberId, projectId, removeMemberId); - return SuccessResponse.empty(); } - - - } diff --git a/backend/src/main/java/com/worlabel/domain/workspace/controller/WorkspaceController.java b/backend/src/main/java/com/worlabel/domain/workspace/controller/WorkspaceController.java index 57ca271..77dc48a 100644 --- a/backend/src/main/java/com/worlabel/domain/workspace/controller/WorkspaceController.java +++ b/backend/src/main/java/com/worlabel/domain/workspace/controller/WorkspaceController.java @@ -31,74 +31,68 @@ public class WorkspaceController { @SwaggerApiSuccess(description = "워크스페이스를 성공적으로 생성합니다.") @SwaggerApiError({ErrorCode.EMPTY_REQUEST_PARAMETER, ErrorCode.SERVER_ERROR}) @PostMapping - public BaseResponse createWorkspace(@CurrentUser final Integer memberId, @Valid @RequestBody final WorkspaceRequest workspaceRequest) { - WorkspaceResponse workspace = workspaceService.createWorkspace(memberId, workspaceRequest); - return SuccessResponse.of(workspace); + public WorkspaceResponse createWorkspace(@CurrentUser final Integer memberId, @Valid @RequestBody final WorkspaceRequest workspaceRequest) { + return workspaceService.createWorkspace(memberId, workspaceRequest); } @Operation(summary = "특정 워크스페이스 조회", description = "특정 워크스페이스를 조회합니다.") @SwaggerApiSuccess(description = "특정 워크스페이스를 성공적으로 조회합니다.") @SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) @GetMapping("/{workspace_id}") - public BaseResponse getWorkspace(@CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId) { - WorkspaceResponse workspace = workspaceService.getWorkspaceById(memberId, workspaceId); - return SuccessResponse.of(workspace); + public WorkspaceResponse getWorkspace(@CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId) { + return workspaceService.getWorkspaceById(memberId, workspaceId); } @Operation(summary = "전체 워크스페이스 조회", description = "모든 워크스페이스를 조회합니다.") @SwaggerApiSuccess(description = "전체 워크스페이스를 성공적으로 조회합니다.") @SwaggerApiError({ErrorCode.SERVER_ERROR}) @GetMapping - public BaseResponse getAllWorkspaces( + public WorkspaceResponses getAllWorkspaces( @CurrentUser final Integer memberId, @Parameter(name = "마지막 워크스페이스 id", description = "마지막 워크스페이스 id를 넣으면 그 아래 부터 가져옴, 넣지않으면 가장 최신", example = "1") @RequestParam(required = false) Integer lastWorkspaceId, @Parameter(name = "가져올 워크스페이스 수", description = "가져올 워크스페이스 수 default = 10", example = "20") @RequestParam(defaultValue = "10") Integer limitPage) { List workspaces = workspaceService.getAllWorkspaces(memberId, lastWorkspaceId, limitPage); - return SuccessResponse.of(WorkspaceResponses.from(workspaces)); + return WorkspaceResponses.from(workspaces); } @Operation(summary = "워크스페이스 수정", description = "특정 워크스페이스를 수정합니다.") @SwaggerApiSuccess(description = "특정 워크스페이스를 성공적으로 수정합니다.") @SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) @PutMapping("/{workspace_id}") - public BaseResponse updateWorkspace( + public WorkspaceResponse updateWorkspace( @CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId, - @Valid @RequestBody final WorkspaceRequest updatedWorkspace) { - WorkspaceResponse workspace = workspaceService.updateWorkspace(memberId, workspaceId, updatedWorkspace); - return SuccessResponse.of(workspace); + @Valid @RequestBody final WorkspaceRequest updatedWorkspace ) { + return workspaceService.updateWorkspace(memberId, workspaceId, updatedWorkspace); } @Operation(summary = "워크스페이스 삭제", description = "특정 워크스페이스를 삭제합니다.") @SwaggerApiSuccess(description = "특정 워크스페이스를 성공적으로 삭제합니다.") @SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) @DeleteMapping("/{workspace_id}") - public BaseResponse 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); - return SuccessResponse.empty(); } @Operation(summary = "워크스페이스 멤버 추가", description = "특정 워크스페이스에 멤버를 추가합니다.") @SwaggerApiSuccess(description = "특정 워크스페이스에 멤버를 성공적으로 추가합니다.") @SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) @PostMapping("/{workspace_id}/members/{member_id}") - public BaseResponse addWorkspaceMember( + public void addWorkspaceMember( @CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId, @PathVariable("member_id") final Integer newMemberId) { workspaceService.addWorkspaceMember(memberId, workspaceId, newMemberId); - return SuccessResponse.empty(); } @Operation(summary = "워크스페이스 멤버 제거", description = "특정 워크스페이스에 멤버를 제거합니다.") @SwaggerApiSuccess(description = "특정 워크스페이스에 멤버를 성공적으로 제거합니다.") @SwaggerApiError({ErrorCode.BAD_REQUEST, ErrorCode.NOT_AUTHOR, ErrorCode.SERVER_ERROR}) @DeleteMapping("/{workspace_id}/members/{member_id}") - public BaseResponse removeWorkspaceMember( + public void removeWorkspaceMember( @CurrentUser final Integer memberId, @PathVariable("workspace_id") final Integer workspaceId, @PathVariable("member_id") final Integer newMemberId) { workspaceService.removeWorkspaceMember(memberId, workspaceId, newMemberId); - return SuccessResponse.empty(); } } \ No newline at end of file diff --git a/backend/src/main/java/com/worlabel/global/advice/CustomControllerAdvice.java b/backend/src/main/java/com/worlabel/global/advice/CustomControllerAdvice.java index 3eb5a4b..ca52f7e 100644 --- a/backend/src/main/java/com/worlabel/global/advice/CustomControllerAdvice.java +++ b/backend/src/main/java/com/worlabel/global/advice/CustomControllerAdvice.java @@ -67,15 +67,13 @@ public class CustomControllerAdvice { } @ExceptionHandler(CustomException.class) - public ResponseEntity handleCustomException(CustomException e, HttpServletRequest request) { + public ResponseEntity handleCustomException(CustomException e, HttpServletRequest request) { log.error("", e); sendNotification(e, request); return ResponseEntity.status(e.getErrorCode().getStatus()) - .body(ErrorResponse.of(e)); + .body(null); } - - private void sendNotification(Exception e, HttpServletRequest request) { // TODO: 필요시 주석 처리 notificationManager.sendNotification(e, request.getRequestURI(),getParams(request)); From 2c7534ec686389cb7fb772a532f4ae1f8f568c8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EC=9A=A9=EC=88=98?= Date: Sat, 14 Sep 2024 12:59:56 +0900 Subject: [PATCH 2/2] =?UTF-8?q?Refactor:=20=EC=97=90=EB=9F=AC=20=EC=9D=91?= =?UTF-8?q?=EB=8B=B5=20=EB=A6=AC=ED=8C=A9=ED=86=A0=EB=A7=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../global/advice/CustomControllerAdvice.java | 41 +++++-------------- 1 file changed, 10 insertions(+), 31 deletions(-) diff --git a/backend/src/main/java/com/worlabel/global/advice/CustomControllerAdvice.java b/backend/src/main/java/com/worlabel/global/advice/CustomControllerAdvice.java index ca52f7e..673c590 100644 --- a/backend/src/main/java/com/worlabel/global/advice/CustomControllerAdvice.java +++ b/backend/src/main/java/com/worlabel/global/advice/CustomControllerAdvice.java @@ -1,5 +1,6 @@ package com.worlabel.global.advice; +import com.amazonaws.Response; import com.worlabel.global.exception.CustomException; import com.worlabel.global.exception.ErrorCode; import com.worlabel.global.response.ErrorResponse; @@ -30,53 +31,31 @@ public class CustomControllerAdvice { @ExceptionHandler(Exception.class) @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR) - public ErrorResponse handleException(Exception e, HttpServletRequest request) { - log.error("", e); + public void handleException(Exception e, HttpServletRequest 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) - public ErrorResponse handleNoHandlerFoundException(NoResourceFoundException e, HttpServletRequest request) { - log.error("", e); + @ExceptionHandler({NoResourceFoundException.class}) + public void handleNotFountException(NoResourceFoundException e, HttpServletRequest request) { sendNotification(e, request); - return ErrorResponse.of(new CustomException(ErrorCode.INVALID_URL)); } - @ExceptionHandler({MissingServletRequestParameterException.class}) - public ErrorResponse handleRequestParameterException(Exception e, HttpServletRequest request) { - log.error("",e); + @ResponseStatus(HttpStatus.BAD_REQUEST) + @ExceptionHandler({HttpRequestMethodNotSupportedException.class, MissingServletRequestParameterException.class, HttpMessageNotReadableException.class}) + public void handleBadRequestException(Exception e, HttpServletRequest 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) public ResponseEntity handleCustomException(CustomException e, HttpServletRequest request) { - log.error("", e); sendNotification(e, request); - return ResponseEntity.status(e.getErrorCode().getStatus()) - .body(null); + return ResponseEntity.status(e.getErrorCode().getStatus()).build(); } private void sendNotification(Exception e, HttpServletRequest request) { - // TODO: 필요시 주석 처리 - notificationManager.sendNotification(e, request.getRequestURI(),getParams(request)); + log.error("", e); + notificationManager.sendNotification(e, request.getRequestURI(), getParams(request)); } private String getParams(HttpServletRequest req) {