diff --git a/build.gradle b/build.gradle index 760247a..927c685 100644 --- a/build.gradle +++ b/build.gradle @@ -20,7 +20,6 @@ repositories { dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springdoc:springdoc-openapi-ui:1.7.0' @@ -35,7 +34,6 @@ dependencies { testRuntimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' - testImplementation 'org.springframework.security:spring-security-test' implementation 'com.googlecode.json-simple:json-simple:1.1.1' implementation group: 'io.jsonwebtoken', name: 'jjwt-api', version: '0.11.5' runtimeOnly group: 'io.jsonwebtoken', name: 'jjwt-impl', version: '0.11.5' diff --git a/src/main/java/com/woongeya/zoing/domain/application/ApplicationFacade.java b/src/main/java/com/woongeya/zoing/domain/application/ApplicationFacade.java index 82b3ec4..d1776a5 100644 --- a/src/main/java/com/woongeya/zoing/domain/application/ApplicationFacade.java +++ b/src/main/java/com/woongeya/zoing/domain/application/ApplicationFacade.java @@ -13,6 +13,6 @@ public class ApplicationFacade { private final ApplicationRepository applicationRepository; public Application getApplication(Long id) { - return applicationRepository.findById(id).orElseThrow(() -> ApplicationNotFoundException.EXCEPTION); + return applicationRepository.findById(id).orElseThrow(() -> new ApplicationNotFoundException(id)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/application/exception/AlreadyApplicationException.java b/src/main/java/com/woongeya/zoing/domain/application/exception/AlreadyApplicationException.java index 2bc24a8..0a15b6d 100644 --- a/src/main/java/com/woongeya/zoing/domain/application/exception/AlreadyApplicationException.java +++ b/src/main/java/com/woongeya/zoing/domain/application/exception/AlreadyApplicationException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.application.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class AlreadyApplicationException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new AlreadyApplicationException(); +public class AlreadyApplicationException extends JJoingException { - public AlreadyApplicationException() { - super(ErrorCode.ALREADY_APPLICATION); + public AlreadyApplicationException(Long projectId) { + super(HttpStatus.BAD_REQUEST, String.format("%s는 이미 신청한 프로젝트입니다.", projectId)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/application/exception/ApplicationNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/application/exception/ApplicationNotFoundException.java index 5c64ee4..e1de7bb 100644 --- a/src/main/java/com/woongeya/zoing/domain/application/exception/ApplicationNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/application/exception/ApplicationNotFoundException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.application.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class ApplicationNotFoundException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new ApplicationNotFoundException(); +public class ApplicationNotFoundException extends JJoingException { - public ApplicationNotFoundException () { - super(ErrorCode.APPLICATION_NOT_FOUND); + public ApplicationNotFoundException (Long id) { + super(HttpStatus.NOT_FOUND, String.format("%s의 아이디를 가진 신청을 찾을 수 없습니다.", id)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/application/service/AcceptApplicationService.java b/src/main/java/com/woongeya/zoing/domain/application/service/AcceptApplicationService.java index 3efb095..56401f4 100644 --- a/src/main/java/com/woongeya/zoing/domain/application/service/AcceptApplicationService.java +++ b/src/main/java/com/woongeya/zoing/domain/application/service/AcceptApplicationService.java @@ -36,7 +36,7 @@ public void execute(Long id) { Application application = applicationFacade.getApplication(id); Project project = projectFacade.getProject(application.getProjectId()); Member member = memberRepository.findByUserIdAndProjectId(writer.getId(), project.getId()) - .orElseThrow(() -> MemberNotFoundException.EXCEPTION); + .orElseThrow(MemberNotFoundException::new); member.acceptApplication(application); memberRepository.save( diff --git a/src/main/java/com/woongeya/zoing/domain/application/service/CreateApplicationService.java b/src/main/java/com/woongeya/zoing/domain/application/service/CreateApplicationService.java index b38e595..c103197 100644 --- a/src/main/java/com/woongeya/zoing/domain/application/service/CreateApplicationService.java +++ b/src/main/java/com/woongeya/zoing/domain/application/service/CreateApplicationService.java @@ -1,8 +1,9 @@ package com.woongeya.zoing.domain.application.service; -import com.woongeya.zoing.domain.application.domain.Application; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.woongeya.zoing.domain.application.domain.repository.ApplicationRepository; -import com.woongeya.zoing.domain.application.domain.type.ApplicationState; import com.woongeya.zoing.domain.application.exception.AlreadyApplicationException; import com.woongeya.zoing.domain.application.presetation.dto.request.ApplicationCreateRequest; import com.woongeya.zoing.domain.auth.repository.AuthRepository; @@ -16,9 +17,8 @@ import com.woongeya.zoing.domain.project.facade.ProjectFacade; import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor @@ -40,7 +40,7 @@ public void execute(ApplicationCreateRequest request, Long id) { User writer = userFacade.getUserById(member.getUserId()); applicationRepository.findByUserIdAndProjectId(user.getId(), project.getId()) - .ifPresent(application -> { throw new AlreadyApplicationException(); }); + .ifPresent(application -> { throw new AlreadyApplicationException(project.getId());}); Long applicationId = applicationRepository.save( request.toEntity(user, project) diff --git a/src/main/java/com/woongeya/zoing/domain/application/service/FindProjectApplicationService.java b/src/main/java/com/woongeya/zoing/domain/application/service/FindProjectApplicationService.java index 111554d..61d3631 100644 --- a/src/main/java/com/woongeya/zoing/domain/application/service/FindProjectApplicationService.java +++ b/src/main/java/com/woongeya/zoing/domain/application/service/FindProjectApplicationService.java @@ -32,7 +32,7 @@ public class FindProjectApplicationService { public List execute(Long id) { User user = authRepository.getCurrentUser(); Member member = memberRepository.findByUserIdAndProjectId(user.getId(), id) - .orElseThrow(() -> MemberNotFoundException.EXCEPTION); + .orElseThrow(MemberNotFoundException::new); if (!member.isWriter()) { throw new IsNotWriterException(); diff --git a/src/main/java/com/woongeya/zoing/domain/application/service/RejectApplicationService.java b/src/main/java/com/woongeya/zoing/domain/application/service/RejectApplicationService.java index 011c840..c963fd0 100644 --- a/src/main/java/com/woongeya/zoing/domain/application/service/RejectApplicationService.java +++ b/src/main/java/com/woongeya/zoing/domain/application/service/RejectApplicationService.java @@ -1,5 +1,8 @@ package com.woongeya.zoing.domain.application.service; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.woongeya.zoing.domain.application.ApplicationFacade; import com.woongeya.zoing.domain.application.domain.Application; import com.woongeya.zoing.domain.application.domain.repository.ApplicationRepository; @@ -12,11 +15,9 @@ import com.woongeya.zoing.domain.project.domain.repository.MemberRepository; import com.woongeya.zoing.domain.project.exception.MemberNotFoundException; import com.woongeya.zoing.domain.project.facade.ProjectFacade; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor @@ -34,7 +35,7 @@ public void execute(Long id) { User user = authRepository.getCurrentUser(); Application application = applicationFacade.getApplication(id); Member member = memberRepository.findByUserIdAndProjectId(user.getId(), application.getProjectId()) - .orElseThrow(() -> MemberNotFoundException.EXCEPTION); + .orElseThrow(MemberNotFoundException::new); Project project = projectFacade.getProject(application.getId()); member.rejectApplication(application); diff --git a/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenExpiredException.java b/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenExpiredException.java index e09a01e..66f3589 100644 --- a/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenExpiredException.java +++ b/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenExpiredException.java @@ -2,7 +2,7 @@ import org.springframework.http.HttpStatus; -import com.woongeya.zoing.global.error.JJoingException; +import com.woongeya.zoing.global.exception.JJoingException; public class TokenExpiredException extends JJoingException { public TokenExpiredException() { diff --git a/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenInvalidException.java b/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenInvalidException.java index 666ec74..7dcc3c5 100644 --- a/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenInvalidException.java +++ b/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenInvalidException.java @@ -2,7 +2,7 @@ import org.springframework.http.HttpStatus; -import com.woongeya.zoing.global.error.JJoingException; +import com.woongeya.zoing.global.exception.JJoingException; public class TokenInvalidException extends JJoingException { public TokenInvalidException() { diff --git a/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenMissingException.java b/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenMissingException.java index 6ab8e43..dac2f00 100644 --- a/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenMissingException.java +++ b/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenMissingException.java @@ -2,7 +2,7 @@ import org.springframework.http.HttpStatus; -import com.woongeya.zoing.global.error.JJoingException; +import com.woongeya.zoing.global.exception.JJoingException; public class TokenMissingException extends JJoingException { public TokenMissingException() { diff --git a/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenNotExistException.java b/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenNotExistException.java index 75fd679..8db3c40 100644 --- a/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenNotExistException.java +++ b/src/main/java/com/woongeya/zoing/domain/auth/exception/TokenNotExistException.java @@ -2,7 +2,7 @@ import static org.springframework.http.HttpStatus.*; -import com.woongeya.zoing.global.error.JJoingException; +import com.woongeya.zoing.global.exception.JJoingException; public class TokenNotExistException extends JJoingException { public TokenNotExistException() { diff --git a/src/main/java/com/woongeya/zoing/domain/auth/exception/UserIsNotAdminException.java b/src/main/java/com/woongeya/zoing/domain/auth/exception/UserIsNotAdminException.java index 2320af1..9bace89 100644 --- a/src/main/java/com/woongeya/zoing/domain/auth/exception/UserIsNotAdminException.java +++ b/src/main/java/com/woongeya/zoing/domain/auth/exception/UserIsNotAdminException.java @@ -2,7 +2,7 @@ import static org.springframework.http.HttpStatus.*; -import com.woongeya.zoing.global.error.JJoingException; +import com.woongeya.zoing.global.exception.JJoingException; public class UserIsNotAdminException extends JJoingException { public UserIsNotAdminException() { diff --git a/src/main/java/com/woongeya/zoing/domain/auth/exception/UserNotLoginException.java b/src/main/java/com/woongeya/zoing/domain/auth/exception/UserNotLoginException.java index 8b8740b..e5ddf44 100644 --- a/src/main/java/com/woongeya/zoing/domain/auth/exception/UserNotLoginException.java +++ b/src/main/java/com/woongeya/zoing/domain/auth/exception/UserNotLoginException.java @@ -2,9 +2,7 @@ import static org.springframework.http.HttpStatus.*; -import org.springframework.http.HttpStatus; - -import com.woongeya.zoing.global.error.JJoingException; +import com.woongeya.zoing.global.exception.JJoingException; public class UserNotLoginException extends JJoingException { public UserNotLoginException() { diff --git a/src/main/java/com/woongeya/zoing/domain/chat/domain/repository/ChatRoomRepository.java b/src/main/java/com/woongeya/zoing/domain/chat/domain/repository/ChatRoomRepository.java index a5cb12d..c1a66e3 100644 --- a/src/main/java/com/woongeya/zoing/domain/chat/domain/repository/ChatRoomRepository.java +++ b/src/main/java/com/woongeya/zoing/domain/chat/domain/repository/ChatRoomRepository.java @@ -8,6 +8,6 @@ public interface ChatRoomRepository extends JpaRepository, CustomChatRoomRepository { default public ChatRoom getById(Long chatRoomId) { - return findById(chatRoomId).orElseThrow(ChatRoomNotFoundException::new); + return findById(chatRoomId).orElseThrow(() -> new ChatRoomNotFoundException(chatRoomId)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/chat/domain/repository/CustomChatRoomRepositoryImpl.java b/src/main/java/com/woongeya/zoing/domain/chat/domain/repository/CustomChatRoomRepositoryImpl.java index 9ad34ec..dd4ee4e 100644 --- a/src/main/java/com/woongeya/zoing/domain/chat/domain/repository/CustomChatRoomRepositoryImpl.java +++ b/src/main/java/com/woongeya/zoing/domain/chat/domain/repository/CustomChatRoomRepositoryImpl.java @@ -9,9 +9,6 @@ import com.querydsl.jpa.impl.JPAQueryFactory; import com.woongeya.zoing.domain.chat.domain.ChatRoom; -import com.woongeya.zoing.domain.chat.domain.QChat; -import com.woongeya.zoing.domain.chat.domain.QChatRoom; -import com.woongeya.zoing.domain.user.domain.User; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/com/woongeya/zoing/domain/chat/exception/ChatRoomNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/chat/exception/ChatRoomNotFoundException.java index 6a36fb6..b88c607 100644 --- a/src/main/java/com/woongeya/zoing/domain/chat/exception/ChatRoomNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/chat/exception/ChatRoomNotFoundException.java @@ -1,11 +1,12 @@ package com.woongeya.zoing.domain.chat.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; + +import com.woongeya.zoing.global.exception.JJoingException; public class ChatRoomNotFoundException extends JJoingException { - public ChatRoomNotFoundException() { - super(ErrorCode.CHAT_ROOM_NOT_FOUND); + public ChatRoomNotFoundException(Long id) { + super(HttpStatus.NOT_FOUND, String.format("%s의 아이디를 가진 채팅방을 찾을 수 없습니다.", id)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/chat/service/command/CommandChatService.java b/src/main/java/com/woongeya/zoing/domain/chat/service/command/CommandChatService.java index 2c4cb5e..1d1da99 100644 --- a/src/main/java/com/woongeya/zoing/domain/chat/service/command/CommandChatService.java +++ b/src/main/java/com/woongeya/zoing/domain/chat/service/command/CommandChatService.java @@ -2,6 +2,7 @@ import org.springframework.stereotype.Service; +import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.chat.domain.ChatRoom; import com.woongeya.zoing.domain.chat.domain.repository.ChatRepository; import com.woongeya.zoing.domain.chat.domain.repository.ChatRoomRepository; diff --git a/src/main/java/com/woongeya/zoing/domain/chat/service/query/QueryChatRoomService.java b/src/main/java/com/woongeya/zoing/domain/chat/service/query/QueryChatRoomService.java index 196db6d..c1858a7 100644 --- a/src/main/java/com/woongeya/zoing/domain/chat/service/query/QueryChatRoomService.java +++ b/src/main/java/com/woongeya/zoing/domain/chat/service/query/QueryChatRoomService.java @@ -4,6 +4,7 @@ import org.springframework.stereotype.Service; +import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.chat.domain.ChatRoom; import com.woongeya.zoing.domain.chat.domain.repository.ChatRoomRepository; import com.woongeya.zoing.domain.chat.presentation.dto.response.ChatRoomResponse; diff --git a/src/main/java/com/woongeya/zoing/domain/comment/exception/CommentNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/comment/exception/CommentNotFoundException.java index 5ae73f7..81535e1 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/exception/CommentNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/exception/CommentNotFoundException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.comment.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class CommentNotFoundException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new CommentNotFoundException(); +public class CommentNotFoundException extends JJoingException { - public CommentNotFoundException() { - super(ErrorCode.COMMENT_NOT_FOUND); + public CommentNotFoundException(Long id) { + super(HttpStatus.NOT_FOUND, String.format("%s의 아이디를 가진 댓글을 찾을 수 없습니다", id)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/comment/exception/ReCommentNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/comment/exception/ReCommentNotFoundException.java index 349282a..9cca942 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/exception/ReCommentNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/exception/ReCommentNotFoundException.java @@ -1,14 +1,13 @@ package com.woongeya.zoing.domain.comment.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class ReCommentNotFoundException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new CommentNotFoundException(); +public class ReCommentNotFoundException extends JJoingException { - public ReCommentNotFoundException() { - super(ErrorCode.RECOMMENT_NOT_FOUND); + public ReCommentNotFoundException(Long id) { + super(HttpStatus.NOT_FOUND, String.format("%s의 아이디를 가진 대댓글을 찾을 수 없습니다", id)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/comment/service/command/CreateCommentService.java b/src/main/java/com/woongeya/zoing/domain/comment/service/command/CreateCommentService.java index 0d931d7..fdbcbbb 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/service/command/CreateCommentService.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/service/command/CreateCommentService.java @@ -25,7 +25,7 @@ public class CreateCommentService { public void execute(Long postId, CreateCommentRequest request) { User user = authRepository.getCurrentUser(); Post post = postRepository.findById(postId) - .orElseThrow(() -> PostNotFoundException.EXCEPTION); + .orElseThrow(() -> new PostNotFoundException(postId)); commentRepository.save(request.toEntity(postId, user)); post.increaseCommentCount(); } diff --git a/src/main/java/com/woongeya/zoing/domain/comment/service/command/CreateReCommentService.java b/src/main/java/com/woongeya/zoing/domain/comment/service/command/CreateReCommentService.java index 84e8f7b..5f81ccf 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/service/command/CreateReCommentService.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/service/command/CreateReCommentService.java @@ -1,5 +1,8 @@ package com.woongeya.zoing.domain.comment.service.command; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.comment.domain.Comment; import com.woongeya.zoing.domain.comment.domain.ReComment; @@ -7,11 +10,9 @@ import com.woongeya.zoing.domain.comment.domain.repository.ReCommentRepository; import com.woongeya.zoing.domain.comment.exception.CommentNotFoundException; import com.woongeya.zoing.domain.comment.presetation.dto.request.CreateCommentRequest; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor @@ -25,7 +26,7 @@ public class CreateReCommentService { public void execute(Long id, CreateCommentRequest request) { User user = authRepository.getCurrentUser(); Comment comment = commentRepository.findById(id) - .orElseThrow(() -> CommentNotFoundException.EXCEPTION); + .orElseThrow(() -> new CommentNotFoundException(id)); reCommentRepository.save( new ReComment(request.content(), id, user.getId()) ); diff --git a/src/main/java/com/woongeya/zoing/domain/comment/service/command/DeleteCommentService.java b/src/main/java/com/woongeya/zoing/domain/comment/service/command/DeleteCommentService.java index eeed548..1b67a85 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/service/command/DeleteCommentService.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/service/command/DeleteCommentService.java @@ -27,14 +27,14 @@ public class DeleteCommentService { public void execute(Long id) { User user = authRepository.getCurrentUser(); Comment comment = commentRepository.findById(id) - .orElseThrow(() -> CommentNotFoundException.EXCEPTION); + .orElseThrow(() -> new CommentNotFoundException(id)); if(!comment.isWriter(user.getId())) { throw new IsNotWriterException(); } Post post = postRepository.findById(comment.getPostId()) - .orElseThrow(() -> PostNotFoundException.EXCEPTION); + .orElseThrow(() -> new PostNotFoundException(comment.getPostId())); commentRepository.delete(comment); post.decreaseCommentCount(); } diff --git a/src/main/java/com/woongeya/zoing/domain/comment/service/command/DeleteReCommentService.java b/src/main/java/com/woongeya/zoing/domain/comment/service/command/DeleteReCommentService.java index 0307469..48921c0 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/service/command/DeleteReCommentService.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/service/command/DeleteReCommentService.java @@ -27,14 +27,14 @@ public class DeleteReCommentService { public void execute(Long id) { User user = authRepository.getCurrentUser(); ReComment reComment = reCommentRepository.findById(id) - .orElseThrow(() -> ReCommentNotFoundException.EXCEPTION); + .orElseThrow(() -> new ReCommentNotFoundException(id)); if(!reComment.isWriter(user.getId())) { throw new IsNotWriterException(); } Comment comment = commentRepository.findById(reComment.getCommentId()) - .orElseThrow(() -> CommentNotFoundException.EXCEPTION); + .orElseThrow(() -> new CommentNotFoundException(reComment.getCommentId())); reCommentRepository.delete(reComment); comment.decreaseReCommentCount(); } diff --git a/src/main/java/com/woongeya/zoing/domain/comment/service/command/UpdateCommentService.java b/src/main/java/com/woongeya/zoing/domain/comment/service/command/UpdateCommentService.java index 525d2c8..50e567a 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/service/command/UpdateCommentService.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/service/command/UpdateCommentService.java @@ -24,7 +24,7 @@ public class UpdateCommentService { public void execute(Long id, CreateCommentRequest request) { User user = authRepository.getCurrentUser(); Comment comment = commentRepository.findById(id) - .orElseThrow(() -> CommentNotFoundException.EXCEPTION); + .orElseThrow(() -> new CommentNotFoundException(id)); if(!comment.isWriter(user.getId())) { throw new IsNotWriterException(); diff --git a/src/main/java/com/woongeya/zoing/domain/comment/service/command/UpdateReCommentService.java b/src/main/java/com/woongeya/zoing/domain/comment/service/command/UpdateReCommentService.java index c6d4973..b582fcb 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/service/command/UpdateReCommentService.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/service/command/UpdateReCommentService.java @@ -23,7 +23,7 @@ public class UpdateReCommentService { public void execute(Long id, CreateCommentRequest request) { User user = authRepository.getCurrentUser(); ReComment reComment = reCommentRepository.findById(id) - .orElseThrow(() -> ReCommentNotFoundException.EXCEPTION); + .orElseThrow(() -> new ReCommentNotFoundException(id)); if(!reComment.isWriter(user.getId())) { throw new IsNotWriterException(); diff --git a/src/main/java/com/woongeya/zoing/domain/comment/service/query/QueryCommentListService.java b/src/main/java/com/woongeya/zoing/domain/comment/service/query/QueryCommentListService.java index 4b5926f..f7dbd4a 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/service/query/QueryCommentListService.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/service/query/QueryCommentListService.java @@ -16,7 +16,7 @@ @Transactional(readOnly = true) public class QueryCommentListService { - private final AuthRepository authRepository; + private final UserFacade userFacade; private final CommentRepository commentRepository; public List execute(Long id) { diff --git a/src/main/java/com/woongeya/zoing/domain/comment/service/query/QueryReCommentListService.java b/src/main/java/com/woongeya/zoing/domain/comment/service/query/QueryReCommentListService.java index 836228d..9fa4831 100644 --- a/src/main/java/com/woongeya/zoing/domain/comment/service/query/QueryReCommentListService.java +++ b/src/main/java/com/woongeya/zoing/domain/comment/service/query/QueryReCommentListService.java @@ -16,7 +16,7 @@ @Transactional(readOnly = true) public class QueryReCommentListService { - private final AuthRepository authRepository; + private final UserFacade userFacade; private final ReCommentRepository reCommentRepository; public List execute(Long id) { diff --git a/src/main/java/com/woongeya/zoing/domain/follow/exception/AlreadyFollowException.java b/src/main/java/com/woongeya/zoing/domain/follow/exception/AlreadyFollowException.java index 6ed27bb..d85fc67 100644 --- a/src/main/java/com/woongeya/zoing/domain/follow/exception/AlreadyFollowException.java +++ b/src/main/java/com/woongeya/zoing/domain/follow/exception/AlreadyFollowException.java @@ -1,11 +1,12 @@ package com.woongeya.zoing.domain.follow.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class AlreadyFollowException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new AlreadyFollowException(); +public class AlreadyFollowException extends JJoingException { - public AlreadyFollowException() { super(ErrorCode.ALREADY_LIKE); } + public AlreadyFollowException(Long id) { + super(HttpStatus.BAD_REQUEST, String.format("%s는 이미 팔로우된 상태입니다.", id)); + } } diff --git a/src/main/java/com/woongeya/zoing/domain/follow/exception/FollowNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/follow/exception/FollowNotFoundException.java index b575e76..3b56eb8 100644 --- a/src/main/java/com/woongeya/zoing/domain/follow/exception/FollowNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/follow/exception/FollowNotFoundException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.follow.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class FollowNotFoundException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new FollowNotFoundException(); +public class FollowNotFoundException extends JJoingException { public FollowNotFoundException () { - super(ErrorCode.FOLLOW_NOT_FOUND); + super(HttpStatus.NOT_FOUND, "팔로우를 찾을 수 없습니다."); } } diff --git a/src/main/java/com/woongeya/zoing/domain/follow/service/CreateFollowService.java b/src/main/java/com/woongeya/zoing/domain/follow/service/CreateFollowService.java index 37cf6f4..e7d92d9 100644 --- a/src/main/java/com/woongeya/zoing/domain/follow/service/CreateFollowService.java +++ b/src/main/java/com/woongeya/zoing/domain/follow/service/CreateFollowService.java @@ -28,7 +28,7 @@ public void execute(Long id) { Optional follow = followRepository.findByFromUserIdAndToUserId(fromUser.getId(), toUser.getId()); if (follow.isPresent()) { - throw new AlreadyFollowException(); + throw new AlreadyFollowException(toUser.getId()); } followRepository.save( diff --git a/src/main/java/com/woongeya/zoing/domain/follow/service/DeleteFollowService.java b/src/main/java/com/woongeya/zoing/domain/follow/service/DeleteFollowService.java index 20566ac..3244bee 100644 --- a/src/main/java/com/woongeya/zoing/domain/follow/service/DeleteFollowService.java +++ b/src/main/java/com/woongeya/zoing/domain/follow/service/DeleteFollowService.java @@ -24,7 +24,7 @@ public void execute(Long id) { followRepository.delete( followRepository.findByFromUserIdAndToUserId(fromUser.getId(), toUser.getId()) - .orElseThrow(() -> FollowNotFoundException.EXCEPTION) + .orElseThrow(FollowNotFoundException::new) ); } } diff --git a/src/main/java/com/woongeya/zoing/domain/like/exception/AlreadyLikeException.java b/src/main/java/com/woongeya/zoing/domain/like/exception/AlreadyLikeException.java index cf78797..d4a4f13 100644 --- a/src/main/java/com/woongeya/zoing/domain/like/exception/AlreadyLikeException.java +++ b/src/main/java/com/woongeya/zoing/domain/like/exception/AlreadyLikeException.java @@ -1,11 +1,12 @@ package com.woongeya.zoing.domain.like.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class AlreadyLikeException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new AlreadyLikeException(); +public class AlreadyLikeException extends JJoingException { - public AlreadyLikeException() { super(ErrorCode.ALREADY_LIKE); } + public AlreadyLikeException(Long id) { + super(HttpStatus.BAD_REQUEST, String.format("%s의 아이디를 가진 좋아요가 이미 존재합니다.", id)); + } } diff --git a/src/main/java/com/woongeya/zoing/domain/like/exception/NonExistentProjectException.java b/src/main/java/com/woongeya/zoing/domain/like/exception/NonExistentProjectException.java deleted file mode 100644 index 5071e20..0000000 --- a/src/main/java/com/woongeya/zoing/domain/like/exception/NonExistentProjectException.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.woongeya.zoing.domain.like.exception; - -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; - -public class NonExistentProjectException extends JJoingException { - - public static final JJoingException EXCEPTION = new NonExistentProjectException(); - public NonExistentProjectException() { super(ErrorCode.NON_EXISTENT_PROJECT); } -} diff --git a/src/main/java/com/woongeya/zoing/domain/like/exception/NotExistLikeException.java b/src/main/java/com/woongeya/zoing/domain/like/exception/NotExistLikeException.java new file mode 100644 index 0000000..2a7b972 --- /dev/null +++ b/src/main/java/com/woongeya/zoing/domain/like/exception/NotExistLikeException.java @@ -0,0 +1,12 @@ +package com.woongeya.zoing.domain.like.exception; + +import org.springframework.http.HttpStatus; + +import com.woongeya.zoing.global.exception.JJoingException; + +public class NotExistLikeException extends JJoingException { + + public NotExistLikeException() { + super(HttpStatus.BAD_REQUEST, "좋아요가 존재하지 않습니다."); + } +} diff --git a/src/main/java/com/woongeya/zoing/domain/like/exception/YouDontLikeBeforeException.java b/src/main/java/com/woongeya/zoing/domain/like/exception/YouDontLikeBeforeException.java deleted file mode 100644 index a994655..0000000 --- a/src/main/java/com/woongeya/zoing/domain/like/exception/YouDontLikeBeforeException.java +++ /dev/null @@ -1,11 +0,0 @@ -package com.woongeya.zoing.domain.like.exception; - -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; - -public class YouDontLikeBeforeException extends JJoingException { - - public static final JJoingException EXCEPTION = new YouDontLikeBeforeException(); - - public YouDontLikeBeforeException () { super(ErrorCode.YOU_DONT_LIKE_BEFORE); } -} diff --git a/src/main/java/com/woongeya/zoing/domain/like/service/CreateLikeService.java b/src/main/java/com/woongeya/zoing/domain/like/service/CreateLikeService.java index 3ff41b2..bdae54d 100644 --- a/src/main/java/com/woongeya/zoing/domain/like/service/CreateLikeService.java +++ b/src/main/java/com/woongeya/zoing/domain/like/service/CreateLikeService.java @@ -1,20 +1,17 @@ package com.woongeya.zoing.domain.like.service; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.like.domain.Like; import com.woongeya.zoing.domain.like.domain.repository.LikeRepository; import com.woongeya.zoing.domain.like.exception.AlreadyLikeException; -import com.woongeya.zoing.domain.like.exception.NonExistentProjectException; import com.woongeya.zoing.domain.project.domain.Project; -import com.woongeya.zoing.domain.project.domain.repository.ProjectRepository; import com.woongeya.zoing.domain.project.facade.ProjectFacade; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; -import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; -import java.util.Optional; +import lombok.RequiredArgsConstructor; @Service @RequiredArgsConstructor @@ -31,7 +28,7 @@ public void execute(Long id) { likeRepository .findByUserIdAndProjectId(user.getId(), project.getId()) - .ifPresent(like -> { throw new AlreadyLikeException(); }); + .ifPresent(like -> { throw new AlreadyLikeException(like.getId()); }); likeRepository.save( Like.builder() diff --git a/src/main/java/com/woongeya/zoing/domain/like/service/DeleteLikeService.java b/src/main/java/com/woongeya/zoing/domain/like/service/DeleteLikeService.java index 93a55ca..6991dd5 100644 --- a/src/main/java/com/woongeya/zoing/domain/like/service/DeleteLikeService.java +++ b/src/main/java/com/woongeya/zoing/domain/like/service/DeleteLikeService.java @@ -1,15 +1,16 @@ package com.woongeya.zoing.domain.like.service; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.like.domain.repository.LikeRepository; -import com.woongeya.zoing.domain.like.exception.YouDontLikeBeforeException; +import com.woongeya.zoing.domain.like.exception.NotExistLikeException; import com.woongeya.zoing.domain.project.domain.Project; import com.woongeya.zoing.domain.project.facade.ProjectFacade; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor @@ -25,8 +26,8 @@ public void execute(Long id) { Project project = projectFacade.getProject(id); likeRepository.delete( - likeRepository.findByUserIdAndProjectId(user.getId(), project.getId()) - .orElseThrow(()-> YouDontLikeBeforeException.EXCEPTION) + likeRepository.findByUserIdAndProjectId(user.getId(), project.getId()) + .orElseThrow(NotExistLikeException::new) ); } } diff --git a/src/main/java/com/woongeya/zoing/domain/notice/exception/NotificationNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/notice/exception/NotificationNotFoundException.java index 9774b63..7ac2382 100644 --- a/src/main/java/com/woongeya/zoing/domain/notice/exception/NotificationNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/notice/exception/NotificationNotFoundException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.notice.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class NotificationNotFoundException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new NotificationNotFoundException(); +public class NotificationNotFoundException extends JJoingException { - public NotificationNotFoundException() { - super(ErrorCode.APPLICATION_NOT_FOUND); + public NotificationNotFoundException(Long id) { + super(HttpStatus.NOT_FOUND, String.format("%s의 아이디를 가진 알람을 찾을 수 없습니다.", id)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/notice/service/DeleteNotificationService.java b/src/main/java/com/woongeya/zoing/domain/notice/service/DeleteNotificationService.java index 18f5c3a..52142f8 100644 --- a/src/main/java/com/woongeya/zoing/domain/notice/service/DeleteNotificationService.java +++ b/src/main/java/com/woongeya/zoing/domain/notice/service/DeleteNotificationService.java @@ -1,13 +1,14 @@ package com.woongeya.zoing.domain.notice.service; +import org.springframework.stereotype.Service; + import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.notice.domain.Notification; import com.woongeya.zoing.domain.notice.domain.repository.NotificationRepository; import com.woongeya.zoing.domain.notice.exception.NotificationNotFoundException; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; @Service @RequiredArgsConstructor @@ -19,7 +20,7 @@ public class DeleteNotificationService { public void execute(Long id) { User user = authRepository.getCurrentUser(); Notification notification = notificationRepository.findById(id) - .orElseThrow(() -> NotificationNotFoundException.EXCEPTION); + .orElseThrow(() -> new NotificationNotFoundException(id)); notificationRepository.delete(notification); } diff --git a/src/main/java/com/woongeya/zoing/domain/post/exception/PostNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/post/exception/PostNotFoundException.java index 8231b25..cf22030 100644 --- a/src/main/java/com/woongeya/zoing/domain/post/exception/PostNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/post/exception/PostNotFoundException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.post.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class PostNotFoundException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new PostNotFoundException(); +public class PostNotFoundException extends JJoingException { - public PostNotFoundException() { - super(ErrorCode.POST_NOT_FOUND); + public PostNotFoundException(Long id) { + super(HttpStatus.NOT_FOUND, String.format("%s의 아이디를 가진 게시글을 찾을 수 없습니다.", id)); } } \ No newline at end of file diff --git a/src/main/java/com/woongeya/zoing/domain/post/service/command/DeletePostService.java b/src/main/java/com/woongeya/zoing/domain/post/service/command/DeletePostService.java index 36b3179..e6df6ab 100644 --- a/src/main/java/com/woongeya/zoing/domain/post/service/command/DeletePostService.java +++ b/src/main/java/com/woongeya/zoing/domain/post/service/command/DeletePostService.java @@ -1,13 +1,13 @@ package com.woongeya.zoing.domain.post.service.command; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.post.domain.repository.PostRepository; -import com.woongeya.zoing.domain.post.exception.PostNotFoundException; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor diff --git a/src/main/java/com/woongeya/zoing/domain/post/service/command/UpdatePostService.java b/src/main/java/com/woongeya/zoing/domain/post/service/command/UpdatePostService.java index a5f6584..3433c67 100644 --- a/src/main/java/com/woongeya/zoing/domain/post/service/command/UpdatePostService.java +++ b/src/main/java/com/woongeya/zoing/domain/post/service/command/UpdatePostService.java @@ -1,16 +1,17 @@ package com.woongeya.zoing.domain.post.service.command; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.post.domain.Post; import com.woongeya.zoing.domain.post.domain.repository.PostRepository; import com.woongeya.zoing.domain.post.exception.PostNotFoundException; import com.woongeya.zoing.domain.post.presetation.dto.request.CreatePostRequest; import com.woongeya.zoing.domain.project.exception.IsNotWriterException; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor @@ -23,7 +24,7 @@ public class UpdatePostService { public void execute(Long id, CreatePostRequest request) { User user = authRepository.getCurrentUser(); Post post = postRepository.findById(id) - .orElseThrow(() -> PostNotFoundException.EXCEPTION); + .orElseThrow(() -> new PostNotFoundException(id)); if(!post.isWriter(user)) { throw new IsNotWriterException(); diff --git a/src/main/java/com/woongeya/zoing/domain/post/service/qeury/QueryPostOneService.java b/src/main/java/com/woongeya/zoing/domain/post/service/qeury/QueryPostOneService.java index 68e91bc..ce5a211 100644 --- a/src/main/java/com/woongeya/zoing/domain/post/service/qeury/QueryPostOneService.java +++ b/src/main/java/com/woongeya/zoing/domain/post/service/qeury/QueryPostOneService.java @@ -22,7 +22,7 @@ public class QueryPostOneService { public PostResponse execute(Long id) { Post post = postRepository.findById(id) - .orElseThrow(() -> PostNotFoundException.EXCEPTION); + .orElseThrow(() -> new PostNotFoundException(id)); User writer = userFacade.getUserById(post.getWriter()); post.increaseViewCnt(); diff --git a/src/main/java/com/woongeya/zoing/domain/project/exception/IsNotWriterException.java b/src/main/java/com/woongeya/zoing/domain/project/exception/IsNotWriterException.java index 2150381..da9dfcc 100644 --- a/src/main/java/com/woongeya/zoing/domain/project/exception/IsNotWriterException.java +++ b/src/main/java/com/woongeya/zoing/domain/project/exception/IsNotWriterException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.project.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class IsNotWriterException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - private static final JJoingException EXCEPTION = new IsNotWriterException(); +public class IsNotWriterException extends JJoingException { public IsNotWriterException() { - super(ErrorCode.IS_NOT_WRITER); + super(HttpStatus.FORBIDDEN, "작성자가 아닙니다."); } } diff --git a/src/main/java/com/woongeya/zoing/domain/project/exception/MemberNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/project/exception/MemberNotFoundException.java index 1f2ec1c..e628380 100644 --- a/src/main/java/com/woongeya/zoing/domain/project/exception/MemberNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/project/exception/MemberNotFoundException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.project.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class MemberNotFoundException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new MemberNotFoundException(); +public class MemberNotFoundException extends JJoingException { public MemberNotFoundException() { - super(ErrorCode.MEMBER_NOT_FOUND); + super(HttpStatus.NOT_FOUND, "멤버를 찾을 수 없습니다"); } } diff --git a/src/main/java/com/woongeya/zoing/domain/project/exception/ProjectNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/project/exception/ProjectNotFoundException.java index 20091e4..2d5c1fa 100644 --- a/src/main/java/com/woongeya/zoing/domain/project/exception/ProjectNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/project/exception/ProjectNotFoundException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.project.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class ProjectNotFoundException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new ProjectNotFoundException(); +public class ProjectNotFoundException extends JJoingException { - public ProjectNotFoundException() { - super(ErrorCode.PROJECT_NOT_FOUND); + public ProjectNotFoundException(Long id) { + super(HttpStatus.NOT_FOUND, String.format("%s의 아이디를 가진 프로젝트를 찾을 수 없습니다.", id)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/project/facade/ProjectFacade.java b/src/main/java/com/woongeya/zoing/domain/project/facade/ProjectFacade.java index c81ccdc..509d661 100644 --- a/src/main/java/com/woongeya/zoing/domain/project/facade/ProjectFacade.java +++ b/src/main/java/com/woongeya/zoing/domain/project/facade/ProjectFacade.java @@ -13,6 +13,6 @@ public class ProjectFacade { private final ProjectRepository projectRepository; public Project getProject(Long id) { - return projectRepository.findById(id).orElseThrow(() -> ProjectNotFoundException.EXCEPTION); + return projectRepository.findById(id).orElseThrow(() -> new ProjectNotFoundException(id)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/project/service/CloseProjectService.java b/src/main/java/com/woongeya/zoing/domain/project/service/CloseProjectService.java index 3f8e296..d63a063 100644 --- a/src/main/java/com/woongeya/zoing/domain/project/service/CloseProjectService.java +++ b/src/main/java/com/woongeya/zoing/domain/project/service/CloseProjectService.java @@ -1,18 +1,18 @@ package com.woongeya.zoing.domain.project.service; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.project.domain.Member; import com.woongeya.zoing.domain.project.domain.Project; -import com.woongeya.zoing.domain.project.domain.repository.CustomMemberRepository; import com.woongeya.zoing.domain.project.domain.repository.MemberRepository; import com.woongeya.zoing.domain.project.exception.IsNotWriterException; import com.woongeya.zoing.domain.project.exception.MemberNotFoundException; import com.woongeya.zoing.domain.project.facade.ProjectFacade; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; @RequiredArgsConstructor @Service @@ -27,7 +27,7 @@ public void execute(Long id) { User user = authRepository.getCurrentUser(); Project project = projectFacade.getProject(id); Member member = memberRepository.findByUserIdAndProjectId(user.getId(), project.getId()) - .orElseThrow(() -> MemberNotFoundException.EXCEPTION); + .orElseThrow(MemberNotFoundException::new); if (!member.isWriter()) { throw new IsNotWriterException(); diff --git a/src/main/java/com/woongeya/zoing/domain/project/service/DeleteMemberService.java b/src/main/java/com/woongeya/zoing/domain/project/service/DeleteMemberService.java index a639297..114a815 100644 --- a/src/main/java/com/woongeya/zoing/domain/project/service/DeleteMemberService.java +++ b/src/main/java/com/woongeya/zoing/domain/project/service/DeleteMemberService.java @@ -9,7 +9,6 @@ import com.woongeya.zoing.domain.project.exception.IsNotWriterException; import com.woongeya.zoing.domain.project.exception.MemberNotFoundException; import com.woongeya.zoing.domain.project.presetation.dto.request.MemberRequest; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; import lombok.RequiredArgsConstructor; @@ -25,7 +24,7 @@ public class DeleteMemberService { public void execute(Long id, MemberRequest request) { User user = authRepository.getCurrentUser(); Member member = memberRepository.findByUserIdAndProjectId(user.getId(), id) - .orElseThrow(() -> MemberNotFoundException.EXCEPTION); + .orElseThrow(MemberNotFoundException::new); if (!member.isWriter()) { throw new IsNotWriterException(); diff --git a/src/main/java/com/woongeya/zoing/domain/project/service/DeleteProjectService.java b/src/main/java/com/woongeya/zoing/domain/project/service/DeleteProjectService.java index 9d19ffb..f7d453d 100644 --- a/src/main/java/com/woongeya/zoing/domain/project/service/DeleteProjectService.java +++ b/src/main/java/com/woongeya/zoing/domain/project/service/DeleteProjectService.java @@ -1,19 +1,25 @@ package com.woongeya.zoing.domain.project.service; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import com.woongeya.zoing.domain.application.domain.repository.ApplicationRepository; import com.woongeya.zoing.domain.auth.repository.AuthRepository; import com.woongeya.zoing.domain.like.domain.repository.LikeRepository; import com.woongeya.zoing.domain.project.domain.Member; import com.woongeya.zoing.domain.project.domain.Project; -import com.woongeya.zoing.domain.project.domain.repository.*; +import com.woongeya.zoing.domain.project.domain.repository.CoopRepository; +import com.woongeya.zoing.domain.project.domain.repository.MemberRepository; +import com.woongeya.zoing.domain.project.domain.repository.MoodRepository; +import com.woongeya.zoing.domain.project.domain.repository.PositionRepository; +import com.woongeya.zoing.domain.project.domain.repository.ProjectRepository; +import com.woongeya.zoing.domain.project.domain.repository.SkillRepository; import com.woongeya.zoing.domain.project.exception.IsNotWriterException; import com.woongeya.zoing.domain.project.exception.MemberNotFoundException; import com.woongeya.zoing.domain.project.facade.ProjectFacade; -import com.woongeya.zoing.domain.user.UserFacade; import com.woongeya.zoing.domain.user.domain.User; + import lombok.RequiredArgsConstructor; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; @Service @RequiredArgsConstructor @@ -35,7 +41,7 @@ public void execute(Long id) { User user = authRepository.getCurrentUser(); Project project = projectFacade.getProject(id); Member member = memberRepository.findByUserIdAndProjectId(user.getId(), project.getId()) - .orElseThrow(() -> MemberNotFoundException.EXCEPTION); + .orElseThrow(MemberNotFoundException::new); if (!member.isWriter()) { throw new IsNotWriterException(); diff --git a/src/main/java/com/woongeya/zoing/domain/project/service/UpdateProjectService.java b/src/main/java/com/woongeya/zoing/domain/project/service/UpdateProjectService.java index a62ffcf..1630f11 100644 --- a/src/main/java/com/woongeya/zoing/domain/project/service/UpdateProjectService.java +++ b/src/main/java/com/woongeya/zoing/domain/project/service/UpdateProjectService.java @@ -34,7 +34,7 @@ public void execute(Long id, CreateProjectRequest request) { User user = authRepository.getCurrentUser(); Member member = memberRepository.findByUserIdAndProjectId(user.getId(), project.getId()) - .orElseThrow(() -> MemberNotFoundException.EXCEPTION); + .orElseThrow(MemberNotFoundException::new); if (!checkMember(member)) { throw new IsNotWriterException(); diff --git a/src/main/java/com/woongeya/zoing/domain/user/UserFacade.java b/src/main/java/com/woongeya/zoing/domain/user/UserFacade.java index 696a889..aa49441 100644 --- a/src/main/java/com/woongeya/zoing/domain/user/UserFacade.java +++ b/src/main/java/com/woongeya/zoing/domain/user/UserFacade.java @@ -15,10 +15,6 @@ public class UserFacade { private final UserRepository userRepository; public User getUserById(Long id) { - return userRepository.findById(id).orElseThrow(() -> UserNotFoundException.EXCEPTION); - } - - public User getUserByEmail(String email) { - return userRepository.findByEmail(email).orElseThrow(() -> UserNotFoundException.EXCEPTION); + return userRepository.findById(id).orElseThrow(() -> new UserNotFoundException(id)); } } diff --git a/src/main/java/com/woongeya/zoing/domain/user/exception/AuthenticationException.java b/src/main/java/com/woongeya/zoing/domain/user/exception/AuthenticationException.java deleted file mode 100644 index e9dc7a2..0000000 --- a/src/main/java/com/woongeya/zoing/domain/user/exception/AuthenticationException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.woongeya.zoing.domain.user.exception; - -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; - -public class AuthenticationException extends JJoingException { - - public static final JJoingException EXCEPTION = new AuthenticationException(); - - public AuthenticationException() { - super(ErrorCode.FAILED_AUTHENTICATION); - } -} diff --git a/src/main/java/com/woongeya/zoing/domain/user/exception/NotMeisterMemberException.java b/src/main/java/com/woongeya/zoing/domain/user/exception/NotMeisterMemberException.java deleted file mode 100644 index a3b3462..0000000 --- a/src/main/java/com/woongeya/zoing/domain/user/exception/NotMeisterMemberException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.woongeya.zoing.domain.user.exception; - -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; - -public class NotMeisterMemberException extends JJoingException { - - public static final JJoingException EXCEPTION = new NotMeisterMemberException(); - - public NotMeisterMemberException() { - super(ErrorCode.NOT_MEISTER_MEMBER); - } -} diff --git a/src/main/java/com/woongeya/zoing/domain/user/exception/UserNotFoundException.java b/src/main/java/com/woongeya/zoing/domain/user/exception/UserNotFoundException.java index 517e986..1259f09 100644 --- a/src/main/java/com/woongeya/zoing/domain/user/exception/UserNotFoundException.java +++ b/src/main/java/com/woongeya/zoing/domain/user/exception/UserNotFoundException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.domain.user.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class UserNotFoundException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public final static UserNotFoundException EXCEPTION = new UserNotFoundException(); +public class UserNotFoundException extends JJoingException { - public UserNotFoundException() { - super(ErrorCode.USER_NOT_FOUND); + public UserNotFoundException(Long id) { + super(HttpStatus.NOT_FOUND, String.format("%s의 아이디를 찾을 수 없습니다.", id)); } } diff --git a/src/main/java/com/woongeya/zoing/global/config/WebConfig.java b/src/main/java/com/woongeya/zoing/global/config/WebConfig.java index 08f0212..12b1635 100644 --- a/src/main/java/com/woongeya/zoing/global/config/WebConfig.java +++ b/src/main/java/com/woongeya/zoing/global/config/WebConfig.java @@ -25,7 +25,7 @@ public class WebConfig implements WebMvcConfigurer { private final JwtParser jwtParser; private final AuthRepository authRepository; - private final AuthRepository authRepository; + private final UserFacade userFacade; @Override public void addCorsMappings(CorsRegistry registry) { @@ -42,6 +42,6 @@ public void addCorsMappings(CorsRegistry registry) { @Override public void addInterceptors(InterceptorRegistry registry) { - registry.addInterceptor(new AuthInterceptor(jwtParser, userFacade, authRepository)); + registry.addInterceptor(new AuthInterceptor(jwtParser, authRepository, userFacade)); } } diff --git a/src/main/java/com/woongeya/zoing/global/error/exception/ErrorCode.java b/src/main/java/com/woongeya/zoing/global/error/exception/ErrorCode.java deleted file mode 100644 index c9bad77..0000000 --- a/src/main/java/com/woongeya/zoing/global/error/exception/ErrorCode.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.woongeya.zoing.global.error.exception; - -import com.fasterxml.jackson.annotation.JsonFormat; -import lombok.AllArgsConstructor; -import lombok.Getter; - -@Getter -@AllArgsConstructor -@JsonFormat(shape = JsonFormat.Shape.OBJECT) -public enum ErrorCode { - - EXPIRED_JWT(403, "TOKEN-403-1", "Expired Jwt"), - INVALID_JWT(403, "TOKEN-403-2", "Invalid Jwt"), - USER_NOT_LOGIN(403, "USER-403-1", "User Not Login"), - FAILED_AUTHENTICATION(401, "AUTHENTICATION-401-1", "Failed Authentication"), - NOT_MEISTER_MEMBER(401, "AUTHENTICATION-401-2", "Not Meister Member"), - USER_NOT_FOUND(404, "USER-404-1", "User Not Found"), - PROJECT_NOT_FOUND(404, "PROJECT-404-1", "Project Not Found"), - MEMBER_NOT_FOUND(404, "MEMBER-404-1", "Member Not Found"), - APPLICATION_NOT_FOUND(404, "APPLICATION-404-1", "Application Not Found"), - ALREADY_APPLICATION(400, "APPLICATION-400-1", "Already Application This Project"), - FOLLOW_NOT_FOUND(404, "FOLLOW-404-1", "Follow Not Found"), - ALREADY_FOLLOW(400, "FOLLOW-400-1", "Already Follow"), - IS_NOT_WRITER(403, "WRITER-403-1", "Is Not Writer"), - YOU_DONT_LIKE_BEFORE(400, "LIKE-400-1", "You Dont Like Before"), - ALREADY_LIKE(400, "LIKE-400-1", "Already Like This Project"), - NON_EXISTENT_PROJECT(404, "LiKE-404-1", "Non Existent Project"), - NOTIFICATION_NOT_FOUND(404, "NOTIFICATION-404-1", "Notification Not Found"), - POST_NOT_FOUND(404, "POST-404-1", "Post Not Found"), - COMMENT_NOT_FOUND(404, "COMMENT-404-1", "Comment Not Found"), - RECOMMENT_NOT_FOUND(404, "RECOMMENT-404-1", "ReComment Not Found"), - CHAT_ROOM_NOT_FOUND(404, "CHATROOM-404-1", "ChatRoom Not Found"), - // S3 - IMAGE_FAILED_SAVE(424, "IMAGE-424-1", "Image Failed Save"), - IMAGE_NOT_FOUND(404, "IMAGE-404-1", "Image Not Found"), - - INTERNAL_SERVER_ERROR(500, "SERVER-500-1", "Internal Server Error"), - ; - - private final int status; - private final String code; - private final String message; -} diff --git a/src/main/java/com/woongeya/zoing/global/error/ErrorResponse.java b/src/main/java/com/woongeya/zoing/global/exception/ErrorResponse.java similarity index 89% rename from src/main/java/com/woongeya/zoing/global/error/ErrorResponse.java rename to src/main/java/com/woongeya/zoing/global/exception/ErrorResponse.java index 1381ca7..9788823 100644 --- a/src/main/java/com/woongeya/zoing/global/error/ErrorResponse.java +++ b/src/main/java/com/woongeya/zoing/global/exception/ErrorResponse.java @@ -1,4 +1,4 @@ -package com.woongeya.zoing.global.error; +package com.woongeya.zoing.global.exception; import lombok.AllArgsConstructor; import lombok.Getter; diff --git a/src/main/java/com/woongeya/zoing/global/error/GlobalExceptionHandler.java b/src/main/java/com/woongeya/zoing/global/exception/GlobalExceptionHandler.java similarity index 86% rename from src/main/java/com/woongeya/zoing/global/error/GlobalExceptionHandler.java rename to src/main/java/com/woongeya/zoing/global/exception/GlobalExceptionHandler.java index f23a846..1f06fb3 100644 --- a/src/main/java/com/woongeya/zoing/global/error/GlobalExceptionHandler.java +++ b/src/main/java/com/woongeya/zoing/global/exception/GlobalExceptionHandler.java @@ -1,14 +1,8 @@ -package com.woongeya.zoing.global.error; +package com.woongeya.zoing.global.exception; import static org.springframework.http.HttpStatus.*; -import java.util.HashMap; -import java.util.Map; - -import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; -import org.springframework.validation.BindException; -import org.springframework.validation.FieldError; import org.springframework.web.bind.MethodArgumentNotValidException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/src/main/java/com/woongeya/zoing/global/error/JJoingException.java b/src/main/java/com/woongeya/zoing/global/exception/JJoingException.java similarity index 85% rename from src/main/java/com/woongeya/zoing/global/error/JJoingException.java rename to src/main/java/com/woongeya/zoing/global/exception/JJoingException.java index 19a8ced..8d12bcd 100644 --- a/src/main/java/com/woongeya/zoing/global/error/JJoingException.java +++ b/src/main/java/com/woongeya/zoing/global/exception/JJoingException.java @@ -1,4 +1,4 @@ -package com.woongeya.zoing.global.error; +package com.woongeya.zoing.global.exception; import org.springframework.http.HttpStatus; diff --git a/src/main/java/com/woongeya/zoing/infrastructure/s3/exception/ImageFailedSaveException.java b/src/main/java/com/woongeya/zoing/infrastructure/s3/exception/ImageFailedSaveException.java index 5700735..2cbe78e 100644 --- a/src/main/java/com/woongeya/zoing/infrastructure/s3/exception/ImageFailedSaveException.java +++ b/src/main/java/com/woongeya/zoing/infrastructure/s3/exception/ImageFailedSaveException.java @@ -1,13 +1,12 @@ package com.woongeya.zoing.infrastructure.s3.exception; -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; +import org.springframework.http.HttpStatus; -public class ImageFailedSaveException extends JJoingException { +import com.woongeya.zoing.global.exception.JJoingException; - public static final JJoingException EXCEPTION = new ImageFailedSaveException(); +public class ImageFailedSaveException extends JJoingException { public ImageFailedSaveException() { - super(ErrorCode.IMAGE_FAILED_SAVE); + super(HttpStatus.FAILED_DEPENDENCY, "이미지를 저장하지 못했습니다."); } } diff --git a/src/main/java/com/woongeya/zoing/infrastructure/s3/exception/ImageNotFoundException.java b/src/main/java/com/woongeya/zoing/infrastructure/s3/exception/ImageNotFoundException.java deleted file mode 100644 index 73605e0..0000000 --- a/src/main/java/com/woongeya/zoing/infrastructure/s3/exception/ImageNotFoundException.java +++ /dev/null @@ -1,13 +0,0 @@ -package com.woongeya.zoing.infrastructure.s3.exception; - -import com.woongeya.zoing.global.error.exception.ErrorCode; -import com.woongeya.zoing.global.error.JJoingException; - -public class ImageNotFoundException extends JJoingException { - - public static final JJoingException EXCEPTION = new ImageNotFoundException(); - - public ImageNotFoundException() { - super(ErrorCode.IMAGE_FAILED_SAVE); - } -} diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 06c698d..0f0e4db 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -44,8 +44,9 @@ spring: fail-on-empty-beans: false jwt: - accessTokenExpirationTime: ${ACCESS-EXP} - refreshTokenExpirationTime: ${REFRESH-EXP} + secret-key: ${SECRET_KEY} + accessTokenExpirationTime: ${ACCESS_EXP} + refreshTokenExpirationTime: ${REFRESH_EXP} cloud: aws: