From 891e9f3ea1a3bf580854cc55e456e005a9302478 Mon Sep 17 00:00:00 2001 From: Gyeong-Jun Kim Date: Sat, 12 Sep 2020 17:49:57 +0900 Subject: [PATCH 01/51] =?UTF-8?q?feature=20:=20[=EC=B1=84=ED=8C=85]=201:1?= =?UTF-8?q?=20=EC=B1=84=ED=8C=85=20=EA=B5=AC=ED=98=84=20-=201=20(#260)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit chore: docker 파일 분리 chore: init ChatApplication chore: Chat 구현 - 3cad006 feat: 게시글 조회에 채팅 생성 버튼 추가, 버튼 클릭시 소켓 등록 chore: generated/ gitignore 추가 feat: 모듈 분리, back - root, api / common / chat … refactor: docker 수정 refactor: Jenkinsfile 수정 및 gitignore 업데이트 refactor: Jenkinsfile 수정 --- .gitignore | 23 ++- Jenkinsfile | 2 +- back/api/build.gradle | 118 ++++++++++++++++ back/{ => api}/src/docs/api-docs.adoc | 0 .../com/jikgorae/api/ApiApplication.java} | 10 +- .../application/ArticleCardResponse.java | 4 +- .../article/application/ArticleRequest.java | 14 +- .../article/application/ArticleResponse.java | 4 +- .../article/application/ArticleService.java | 12 +- .../application/ArticleViewService.java | 20 +-- .../article/application/AuthorResponse.java | 4 +- .../article/application/FeedResponse.java | 4 +- .../application/TradeStateRequest.java | 2 +- .../jikgorae/api}/article/domain/Article.java | 9 +- .../article/domain/ArticleRepository.java | 4 +- .../api}/article/domain/Category.java | 2 +- .../jikgorae/api}/article/domain/Photos.java | 2 +- .../com/jikgorae/api}/article/domain/Tag.java | 2 +- .../jikgorae/api}/article/domain/Tags.java | 2 +- .../api}/article/domain/TradeState.java | 2 +- .../presentation/ArticleController.java | 31 ++-- .../api}/article/query/ArticleDao.java | 16 +-- .../ArticleFavoriteCountService.java | 10 +- .../domain/ArticleFavoriteCount.java | 4 +- .../domain/ArticleFavoriteCountFactory.java | 4 +- .../ArticleFavoriteCountRepository.java | 4 +- .../application/ChatRoomCreateRequest.java | 4 +- .../application/ChatRoomResponse.java | 4 +- .../chatroom/application/ChatRoomService.java | 6 +- .../api}/chatroom/domain/ChatRoom.java | 6 +- .../chatroom/domain/ChatRoomRepository.java | 2 +- .../presentation/ChatRoomController.java | 17 ++- .../jikgorae/api}/common/PageController.java | 3 +- .../jikgorae/api/common/config/JpaConfig.java | 13 ++ .../common/config/QuerydslConfiguration.java | 3 +- .../application/EvaluationRequest.java | 10 +- .../application/EvaluationService.java | 4 +- .../api}/evaluation/domain/Evaluation.java | 6 +- .../domain/EvaluationRepository.java | 2 +- .../api}/evaluation/domain/Score.java | 2 +- .../presentation/EvaluationController.java | 15 +- .../application/FavoriteCreatedEvent.java | 4 +- .../application/FavoriteRemovedEvent.java | 4 +- .../favorite/application/FavoriteRequest.java | 2 +- .../favorite/application/FavoriteService.java | 14 +- .../api}/favorite/domain/Favorite.java | 10 +- .../favorite/domain/FavoriteRepository.java | 6 +- .../infra/FavoriteCreatedListener.java | 6 +- .../infra/FavoriteRemovedListener.java | 6 +- .../presentation/FavoriteController.java | 21 ++- .../application/KakaoPropertiesRequest.java | 4 +- .../api}/member/application/KakaoService.java | 20 +-- .../application/KakaoTokenResponse.java} | 8 +- .../api}/member/application/LoginRequest.java | 2 +- .../member/application/MemberRequest.java | 2 +- .../member/application/MemberService.java | 10 +- .../member/application/ProfileRequest.java | 2 +- .../member/application/ProfileResponse.java | 4 +- .../member/application/TokenResponse.java | 4 +- .../presentation/AuthAdviceController.java | 6 +- .../member/presentation/AuthController.java | 11 +- .../presentation/ProfileController.java | 22 +-- .../security/config/AuthorizationConfig.java | 13 +- .../security/config/OAuth2SuccessHandler.java | 12 +- .../api}/security/config/SecurityConfig.java | 4 +- .../AuthorizationExtractor.java | 4 +- .../oauth2/provider/CustomOAuth2Provider.java | 2 +- .../MyOAuth2AuthorizedClientService.java | 8 +- .../oauth2/token/JwtTokenProvider.java | 2 +- .../security/web/AuthorizationException.java | 2 +- .../api}/security/web/AuthorizationType.java | 2 +- .../web/context/TokenSecurityInterceptor.java | 17 ++- .../api}/trade/application/TradeService.java | 4 +- .../com/jikgorae/api}/trade/domain/Trade.java | 8 +- .../api}/trade/domain/TradeRepository.java | 4 +- .../trade/presentation/TradeController.java | 6 +- ...itional-spring-configuration-metadata.json | 0 .../src/main/resources/application.yml | 0 .../main/resources/db/migration/V1__Init.sql | 0 .../db/migration/V2.1__Update_Article.sql | 0 .../db/migration/V2.2__Create_Chat_Room.sql | 0 .../db/migration/V2.3__Update_Member.sql | 0 .../V3.1__Create_Article_Favorite_Count.sql | 0 .../db/migration/V4.1__Create_Trade.sql | 0 .../db/migration/V5.1__Create_Evaluation.sql | 0 .../db/migration/V6.1__Update_Member.sql | 0 .../db/migration/V7.1__Update_Member.sql | 0 .../src/main/resources/logback-spring.xml | 0 .../src/main/resources/static/docs.html | 0 .../resources/static/docs_files/MathJax.js | 0 .../resources/static/docs_files/dejavu.css | 0 .../static/docs_files/droidsansmono.css | 0 .../static/docs_files/font-awesome.min.css | 0 .../static/docs_files/googlefonts.css | 0 .../static/docs_files/pickSourceLine.js | 0 .../static/docs_files/processLinks.js | 0 .../static/docs_files/scrollToElement.js | 0 .../main/resources/static/images/qrcode.png | Bin .../src/main/resources/static/index.html | 0 .../src/main/resources/static/privacy.html | 36 ++--- .../com/jikgorae/api}/AcceptanceTest.java | 27 ++-- .../com/jikgorae/api}/ControllerTest.java | 15 +- .../acceptance/ArticleAcceptanceTest.java | 38 ++--- .../application/ArticleServiceTest.java | 10 +- .../application/ArticleViewServiceTest.java | 27 ++-- .../api}/article/domain/PhotosTest.java | 2 +- .../presentation/ArticleControllerTest.java | 57 ++++---- .../ArticleFavoriteCountServiceTest.java | 8 +- .../acceptance/ChatRoomAcceptanceTest.java | 25 ++-- .../application/ChatRoomServiceTest.java | 10 +- .../presentation/ChatRoomControllerTest.java | 30 ++-- .../api}/common/PageControllerTest.java | 11 +- .../acceptance/EvaluationAcceptanceTest.java | 23 ++- .../application/EvaluationServiceTest.java | 12 +- .../EvaluationControllerTest.java | 20 ++- .../acceptance/FavoriteAcceptanceTest.java | 23 ++- .../application/FavoriteServiceTest.java | 20 +-- .../presentation/FavoriteControllerTest.java | 32 ++--- .../jikgorae/api}/fixture/ArticleFixture.java | 23 ++- .../api}/fixture/EvaluationFixture.java | 11 +- .../jikgorae/api/fixture/FavoriteFixture.java | 8 ++ .../jikgorae/api}/fixture/MemberFixture.java | 12 +- .../com/jikgorae/api}/fixture/TagFixture.java | 4 +- .../jikgorae/api/fixture/TradeFixture.java | 9 ++ .../acceptance/MemberAcceptanceTest.java | 17 ++- .../member/application/MemberServiceTest.java | 7 +- .../api}/member/domain/MemberTest.java | 5 +- .../AuthAdviceControllerTest.java | 6 +- .../presentation/AuthControllerTest.java | 15 +- .../presentation/ProfileControllerTest.java | 20 +-- .../security/config/SecurityConfigTest.java | 2 +- .../context/TokenSecurityInterceptorTest.java | 11 +- .../trade/application/TradeServiceTest.java | 21 +-- .../presentation/TradeControllerTest.java | 23 +++ .../src/test/resources/application.yml | 0 .../{ => api}/src/test/resources/truncate.sql | 0 back/build.gradle | 132 +++--------------- back/chat/build.gradle | 8 ++ .../com/jikgorae/chat/ChatApplication.java | 12 ++ .../jikgorae/chat/config/WebSockConfig.java | 23 +++ .../chat/message/application/MessageDto.java | 33 +++++ .../domain/MessageDtoHandlingService.java | 14 ++ .../chat/message/domain/MessageType.java | 28 ++++ .../presentation/MessageController.java | 26 ++++ .../chat/room/application/RoomResponse.java | 35 +++++ .../chat/room/application/RoomService.java | 33 +++++ .../com/jikgorae/chat/room/domain/Room.java | 34 +++++ .../chat/room/domain/RoomRepository.java | 6 + .../room/presentation/RoomController.java | 45 ++++++ back/chat/src/main/resources/application.yml | 13 ++ .../jikgorae/api/ChatApplicationTests.java | 13 ++ back/common/build.gradle | 55 ++++++++ .../com/jikgorae/common}/BaseTimeEntity.java | 2 +- .../member/domain/IllegalJoinException.java | 2 +- .../member/domain/IllegalLoginException.java | 2 +- .../common}/member/domain/Member.java | 2 +- .../member/domain/MemberRepository.java | 2 +- .../member/domain/RefreshTokenException.java | 2 +- .../jikgorae/common}/member/domain/State.java | 2 +- .../common}/security/core/LoginMember.java | 2 +- .../security/web/AuthenticationException.java | 2 +- .../LoginMemberMethodArgumentResolver.java | 8 +- back/settings.gradle | 4 + .../back/common/config/JpaConfig.java | 9 -- .../back/fixture/FavoriteFixture.java | 11 -- .../sellerlee/back/fixture/TradeFixture.java | 12 -- .../presentation/TradeControllerTest.java | 42 ------ .../Dockerfile-mariadb | 0 .../Dockerfile-springboot | 2 +- .../docker-compose-mariadb.yml | 0 .../docker-compose.yml | 0 front/src/api/api.ts | 20 ++- .../ArticleDetail/ArticleDetailBottomNav.tsx | 14 +- front/src/components/Chat/WebSocketClient.tsx | 36 +++++ 174 files changed, 1194 insertions(+), 774 deletions(-) create mode 100644 back/api/build.gradle rename back/{ => api}/src/docs/api-docs.adoc (100%) rename back/{src/main/java/sellerlee/back/SellerLeeApplication.java => api/src/main/java/com/jikgorae/api/ApiApplication.java} (56%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/application/ArticleCardResponse.java (96%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/application/ArticleRequest.java (79%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/application/ArticleResponse.java (96%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/application/ArticleService.java (84%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/application/ArticleViewService.java (89%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/application/AuthorResponse.java (87%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/application/FeedResponse.java (95%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/application/TradeStateRequest.java (85%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/domain/Article.java (93%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/domain/ArticleRepository.java (90%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/domain/Category.java (96%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/domain/Photos.java (97%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/domain/Tag.java (94%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/domain/Tags.java (97%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/domain/TradeState.java (94%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/presentation/ArticleController.java (81%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/article/query/ArticleDao.java (74%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/articlefavoritecount/application/ArticleFavoriteCountService.java (77%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/articlefavoritecount/domain/ArticleFavoriteCount.java (92%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/articlefavoritecount/domain/ArticleFavoriteCountFactory.java (78%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/articlefavoritecount/domain/ArticleFavoriteCountRepository.java (78%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/chatroom/application/ChatRoomCreateRequest.java (83%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/chatroom/application/ChatRoomResponse.java (89%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/chatroom/application/ChatRoomService.java (81%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/chatroom/domain/ChatRoom.java (89%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/chatroom/domain/ChatRoomRepository.java (84%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/chatroom/presentation/ChatRoomController.java (69%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/common/PageController.java (85%) create mode 100644 back/api/src/main/java/com/jikgorae/api/common/config/JpaConfig.java rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/common/config/QuerydslConfiguration.java (87%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/evaluation/application/EvaluationRequest.java (68%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/evaluation/application/EvaluationService.java (80%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/evaluation/domain/Evaluation.java (90%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/evaluation/domain/EvaluationRepository.java (76%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/evaluation/domain/Score.java (95%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/evaluation/presentation/EvaluationController.java (62%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/favorite/application/FavoriteCreatedEvent.java (77%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/favorite/application/FavoriteRemovedEvent.java (77%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/favorite/application/FavoriteRequest.java (84%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/favorite/application/FavoriteService.java (77%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/favorite/domain/Favorite.java (84%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/favorite/domain/FavoriteRepository.java (80%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/favorite/infra/FavoriteCreatedListener.java (76%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/favorite/infra/FavoriteRemovedListener.java (76%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/favorite/presentation/FavoriteController.java (71%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/application/KakaoPropertiesRequest.java (86%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/application/KakaoService.java (89%) rename back/{src/main/java/sellerlee/back/member/application/kakaoTokenResponse.java => api/src/main/java/com/jikgorae/api/member/application/KakaoTokenResponse.java} (83%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/application/LoginRequest.java (89%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/application/MemberRequest.java (93%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/application/MemberService.java (83%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/application/ProfileRequest.java (89%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/application/ProfileResponse.java (90%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/application/TokenResponse.java (91%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/presentation/AuthAdviceController.java (80%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/presentation/AuthController.java (68%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/member/presentation/ProfileController.java (66%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/config/AuthorizationConfig.java (75%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/config/OAuth2SuccessHandler.java (85%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/config/SecurityConfig.java (96%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/oauth2/authentication/AuthorizationExtractor.java (92%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/oauth2/provider/CustomOAuth2Provider.java (97%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/oauth2/service/MyOAuth2AuthorizedClientService.java (91%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/oauth2/token/JwtTokenProvider.java (96%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/web/AuthorizationException.java (83%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/web/AuthorizationType.java (78%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/security/web/context/TokenSecurityInterceptor.java (74%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/trade/application/TradeService.java (85%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/trade/domain/Trade.java (86%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/trade/domain/TradeRepository.java (70%) rename back/{src/main/java/sellerlee/back => api/src/main/java/com/jikgorae/api}/trade/presentation/TradeController.java (82%) rename back/{ => api}/src/main/resources/META-INF/additional-spring-configuration-metadata.json (100%) rename back/{ => api}/src/main/resources/application.yml (100%) rename back/{ => api}/src/main/resources/db/migration/V1__Init.sql (100%) rename back/{ => api}/src/main/resources/db/migration/V2.1__Update_Article.sql (100%) rename back/{ => api}/src/main/resources/db/migration/V2.2__Create_Chat_Room.sql (100%) rename back/{ => api}/src/main/resources/db/migration/V2.3__Update_Member.sql (100%) rename back/{ => api}/src/main/resources/db/migration/V3.1__Create_Article_Favorite_Count.sql (100%) rename back/{ => api}/src/main/resources/db/migration/V4.1__Create_Trade.sql (100%) rename back/{ => api}/src/main/resources/db/migration/V5.1__Create_Evaluation.sql (100%) rename back/{ => api}/src/main/resources/db/migration/V6.1__Update_Member.sql (100%) rename back/{ => api}/src/main/resources/db/migration/V7.1__Update_Member.sql (100%) rename back/{ => api}/src/main/resources/logback-spring.xml (100%) rename back/{ => api}/src/main/resources/static/docs.html (100%) rename back/{ => api}/src/main/resources/static/docs_files/MathJax.js (100%) rename back/{ => api}/src/main/resources/static/docs_files/dejavu.css (100%) rename back/{ => api}/src/main/resources/static/docs_files/droidsansmono.css (100%) rename back/{ => api}/src/main/resources/static/docs_files/font-awesome.min.css (100%) rename back/{ => api}/src/main/resources/static/docs_files/googlefonts.css (100%) rename back/{ => api}/src/main/resources/static/docs_files/pickSourceLine.js (100%) rename back/{ => api}/src/main/resources/static/docs_files/processLinks.js (100%) rename back/{ => api}/src/main/resources/static/docs_files/scrollToElement.js (100%) rename back/{ => api}/src/main/resources/static/images/qrcode.png (100%) rename back/{ => api}/src/main/resources/static/index.html (100%) rename back/{ => api}/src/main/resources/static/privacy.html (99%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/AcceptanceTest.java (83%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/ControllerTest.java (81%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/article/acceptance/ArticleAcceptanceTest.java (89%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/article/application/ArticleServiceTest.java (87%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/article/application/ArticleViewServiceTest.java (84%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/article/domain/PhotosTest.java (92%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/article/presentation/ArticleControllerTest.java (85%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/articlefavoritecount/application/ArticleFavoriteCountServiceTest.java (89%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/chatroom/acceptance/ChatRoomAcceptanceTest.java (83%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/chatroom/application/ChatRoomServiceTest.java (86%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/chatroom/presentation/ChatRoomControllerTest.java (78%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/common/PageControllerTest.java (71%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/evaluation/acceptance/EvaluationAcceptanceTest.java (74%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/evaluation/application/EvaluationServiceTest.java (75%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/evaluation/presentation/EvaluationControllerTest.java (61%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/favorite/acceptance/FavoriteAcceptanceTest.java (84%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/favorite/application/FavoriteServiceTest.java (78%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/favorite/presentation/FavoriteControllerTest.java (76%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/fixture/ArticleFixture.java (83%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/fixture/EvaluationFixture.java (58%) create mode 100644 back/api/src/test/java/com/jikgorae/api/fixture/FavoriteFixture.java rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/fixture/MemberFixture.java (87%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/fixture/TagFixture.java (78%) create mode 100644 back/api/src/test/java/com/jikgorae/api/fixture/TradeFixture.java rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/member/acceptance/MemberAcceptanceTest.java (82%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/member/application/MemberServiceTest.java (88%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/member/domain/MemberTest.java (72%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/member/presentation/AuthAdviceControllerTest.java (95%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/member/presentation/AuthControllerTest.java (72%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/member/presentation/ProfileControllerTest.java (85%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/security/config/SecurityConfigTest.java (96%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/security/web/context/TokenSecurityInterceptorTest.java (85%) rename back/{src/test/java/sellerlee/back => api/src/test/java/com/jikgorae/api}/trade/application/TradeServiceTest.java (60%) create mode 100644 back/api/src/test/java/com/jikgorae/api/trade/presentation/TradeControllerTest.java rename back/{ => api}/src/test/resources/application.yml (100%) rename back/{ => api}/src/test/resources/truncate.sql (100%) create mode 100644 back/chat/build.gradle create mode 100644 back/chat/src/main/java/com/jikgorae/chat/ChatApplication.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/config/WebSockConfig.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/message/application/MessageDto.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/message/domain/MessageDtoHandlingService.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/message/domain/MessageType.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/message/presentation/MessageController.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/room/application/RoomResponse.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/room/application/RoomService.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/room/domain/Room.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/room/domain/RoomRepository.java create mode 100644 back/chat/src/main/java/com/jikgorae/chat/room/presentation/RoomController.java create mode 100644 back/chat/src/main/resources/application.yml create mode 100644 back/chat/src/test/java/com/jikgorae/api/ChatApplicationTests.java create mode 100644 back/common/build.gradle rename back/{src/main/java/sellerlee/back/common/domain => common/src/main/java/com/jikgorae/common}/BaseTimeEntity.java (94%) rename back/{src/main/java/sellerlee/back => common/src/main/java/com/jikgorae/common}/member/domain/IllegalJoinException.java (77%) rename back/{src/main/java/sellerlee/back => common/src/main/java/com/jikgorae/common}/member/domain/IllegalLoginException.java (76%) rename back/{src/main/java/sellerlee/back => common/src/main/java/com/jikgorae/common}/member/domain/Member.java (98%) rename back/{src/main/java/sellerlee/back => common/src/main/java/com/jikgorae/common}/member/domain/MemberRepository.java (90%) rename back/{src/main/java/sellerlee/back => common/src/main/java/com/jikgorae/common}/member/domain/RefreshTokenException.java (77%) rename back/{src/main/java/sellerlee/back => common/src/main/java/com/jikgorae/common}/member/domain/State.java (52%) rename back/{src/main/java/sellerlee/back => common/src/main/java/com/jikgorae/common}/security/core/LoginMember.java (85%) rename back/{src/main/java/sellerlee/back => common/src/main/java/com/jikgorae/common}/security/web/AuthenticationException.java (82%) rename back/{src/main/java/sellerlee/back => common/src/main/java/com/jikgorae/common}/security/web/LoginMemberMethodArgumentResolver.java (89%) delete mode 100644 back/src/main/java/sellerlee/back/common/config/JpaConfig.java delete mode 100644 back/src/test/java/sellerlee/back/fixture/FavoriteFixture.java delete mode 100644 back/src/test/java/sellerlee/back/fixture/TradeFixture.java delete mode 100644 back/src/test/java/sellerlee/back/trade/presentation/TradeControllerTest.java rename Dockerfile-mariadb => docker/Dockerfile-mariadb (100%) rename Dockerfile-springboot => docker/Dockerfile-springboot (79%) rename docker-compose-mariadb.yml => docker/docker-compose-mariadb.yml (100%) rename docker-compose.yml => docker/docker-compose.yml (100%) create mode 100644 front/src/components/Chat/WebSocketClient.tsx diff --git a/.gitignore b/.gitignore index bd9bffa0..9653af51 100644 --- a/.gitignore +++ b/.gitignore @@ -20,12 +20,18 @@ front/.DS_Store back/.DS_Store .DS_Store -# back -back/.gradle -back/build/ +# api +back/api/.gradle +back/api/build/ back/!gradle/wrapper/gradle-wrapper.jar -back/!**/src/main/** -back/!**/src/test/** +back/api/!**/src/main/** +back/api/!**/src/test/** + +# api +back/api/.gradle +back/api/build/ +back/api/!**/src/main/** +back/api/!**/src/test/** ### STS ### back/.apt_generated @@ -53,5 +59,8 @@ back/out/ ### VS Code ### .vscode/ .idea/ -/back/src/main/resources/application-*.yml -/back/src/test/resources/application-*.yml +/back/api/src/main/resources/application-*.yml +/back/api/src/test/resources/application-*.yml +/back/api/src/main/generated + +/back/common/src/main/generated diff --git a/Jenkinsfile b/Jenkinsfile index 76280c40..9a66efa3 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -3,6 +3,6 @@ node { checkout scm } stage('build') { - sh 'cd back && ./gradlew clean build' + sh 'cd back && ./gradlew api:clean api:build' } } diff --git a/back/api/build.gradle b/back/api/build.gradle new file mode 100644 index 00000000..8d9656aa --- /dev/null +++ b/back/api/build.gradle @@ -0,0 +1,118 @@ +// QueryDSL Version +def queryDSLVersion = '4.2.2' +// QueryDSL PATH +def generated = "src/main/generated" + +configurations { + developmentOnly + runtimeClasspath { + extendsFrom developmentOnly + } + compileOnly { + extendsFrom annotationProcessor + } +} + +dependencies { + // spring + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-validation' + implementation 'org.springframework.boot:spring-boot-starter-security' + implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' + annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' + testImplementation('org.springframework.boot:spring-boot-starter-test') { + exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' + } + + // queryDSL + implementation "com.querydsl:querydsl-core:${queryDSLVersion}" + implementation "com.querydsl:querydsl-jpa:${queryDSLVersion}" + implementation "com.querydsl:querydsl-apt:${queryDSLVersion}" + annotationProcessor( + "com.querydsl:querydsl-apt:${queryDSLVersion}:jpa", + "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final", + "javax.annotation:javax.annotation-api", + ) + // documentation + testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc' + asciidoctor 'org.springframework.restdocs:spring-restdocs-asciidoctor' + // httpClientBuilder + implementation 'org.apache.httpcomponents:httpclient:4.5' + // jwt + implementation 'io.jsonwebtoken:jjwt:0.9.1' + // apache + implementation 'org.apache.commons:commons-lang3:3.10' + // flyway + implementation 'org.flywaydb:flyway-core' + // mariaDB + runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' + // h2 + testImplementation 'com.h2database:h2' + // rest assured + testImplementation 'io.rest-assured:rest-assured:3.3.0' + // security test + testImplementation 'org.springframework.security:spring-security-test' +} + +test { + useJUnitPlatform() +} + +sourceSets { + main.java.srcDirs += [ generated ] +} + +tasks.withType(JavaCompile) { + options.annotationProcessorGeneratedSourcesDirectory = file(generated) +} + +clean.doLast { + file(generated).deleteDir() +} + +bootJar { + dependsOn asciidoctor + from("${asciidoctor.outputDir}/html5") { + into 'static/docs' + } +} + +ext { + snippetsDir = file('build/generated-snippets') +} + +test { + outputs.dir snippetsDir +} + +asciidoctor { + inputs.dir snippetsDir + dependsOn test +} + +processResources.dependsOn('copyDatabaseSecret') + +task copyDatabaseSecret { + dependsOn 'copyDatabaseSecretMain' + dependsOn 'copyDatabaseSecretTest' +} + +task copyDatabaseSecretMain(type: Copy) { + from('../../seller-lee-secret') { + include 'application-common.yml' + include 'application-security.yml' + include 'application-dev.yml' + include 'application-local.yml' + include 'application-prod.yml' + } + into 'src/main/resources' +} + +task copyDatabaseSecretTest(type: Copy) { + from('../../seller-lee-secret') { + include 'application-security.yml' + } + into 'src/test/resources' +} + diff --git a/back/src/docs/api-docs.adoc b/back/api/src/docs/api-docs.adoc similarity index 100% rename from back/src/docs/api-docs.adoc rename to back/api/src/docs/api-docs.adoc diff --git a/back/src/main/java/sellerlee/back/SellerLeeApplication.java b/back/api/src/main/java/com/jikgorae/api/ApiApplication.java similarity index 56% rename from back/src/main/java/sellerlee/back/SellerLeeApplication.java rename to back/api/src/main/java/com/jikgorae/api/ApiApplication.java index 6abe610c..c4915460 100644 --- a/back/src/main/java/sellerlee/back/SellerLeeApplication.java +++ b/back/api/src/main/java/com/jikgorae/api/ApiApplication.java @@ -1,4 +1,4 @@ -package sellerlee.back; +package com.jikgorae.api; import java.util.TimeZone; @@ -6,16 +6,20 @@ import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Import; +import com.jikgorae.common.security.web.LoginMemberMethodArgumentResolver; + +@Import(LoginMemberMethodArgumentResolver.class) @SpringBootApplication -public class SellerLeeApplication { +public class ApiApplication { @PostConstruct void init() { TimeZone.setDefault(TimeZone.getTimeZone("Asia/Seoul")); } public static void main(String[] args) { - SpringApplication.run(SellerLeeApplication.class, args); + SpringApplication.run(ApiApplication.class, args); } } diff --git a/back/src/main/java/sellerlee/back/article/application/ArticleCardResponse.java b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleCardResponse.java similarity index 96% rename from back/src/main/java/sellerlee/back/article/application/ArticleCardResponse.java rename to back/api/src/main/java/com/jikgorae/api/article/application/ArticleCardResponse.java index 4609415d..9159cede 100644 --- a/back/src/main/java/sellerlee/back/article/application/ArticleCardResponse.java +++ b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleCardResponse.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; import static java.util.stream.Collectors.*; @@ -6,7 +6,7 @@ import java.util.List; import java.util.stream.IntStream; -import sellerlee.back.article.domain.Article; +import com.jikgorae.api.article.domain.Article; public class ArticleCardResponse { private Long id; diff --git a/back/src/main/java/sellerlee/back/article/application/ArticleRequest.java b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleRequest.java similarity index 79% rename from back/src/main/java/sellerlee/back/article/application/ArticleRequest.java rename to back/api/src/main/java/com/jikgorae/api/article/application/ArticleRequest.java index 302fe821..4d99e54e 100644 --- a/back/src/main/java/sellerlee/back/article/application/ArticleRequest.java +++ b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleRequest.java @@ -1,13 +1,13 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; import java.util.List; -import sellerlee.back.article.domain.Article; -import sellerlee.back.article.domain.Category; -import sellerlee.back.article.domain.Photos; -import sellerlee.back.article.domain.Tags; -import sellerlee.back.article.domain.TradeState; -import sellerlee.back.member.domain.Member; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.api.article.domain.Category; +import com.jikgorae.api.article.domain.Photos; +import com.jikgorae.api.article.domain.Tags; +import com.jikgorae.api.article.domain.TradeState; +import com.jikgorae.common.member.domain.Member; public class ArticleRequest { private String title; diff --git a/back/src/main/java/sellerlee/back/article/application/ArticleResponse.java b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleResponse.java similarity index 96% rename from back/src/main/java/sellerlee/back/article/application/ArticleResponse.java rename to back/api/src/main/java/com/jikgorae/api/article/application/ArticleResponse.java index 3b959acf..2aa9c36a 100644 --- a/back/src/main/java/sellerlee/back/article/application/ArticleResponse.java +++ b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleResponse.java @@ -1,9 +1,9 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; import java.time.format.DateTimeFormatter; import java.util.List; -import sellerlee.back.article.domain.Article; +import com.jikgorae.api.article.domain.Article; public class ArticleResponse { private Long id; diff --git a/back/src/main/java/sellerlee/back/article/application/ArticleService.java b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleService.java similarity index 84% rename from back/src/main/java/sellerlee/back/article/application/ArticleService.java rename to back/api/src/main/java/com/jikgorae/api/article/application/ArticleService.java index ee1ac177..0f3024d2 100644 --- a/back/src/main/java/sellerlee/back/article/application/ArticleService.java +++ b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleService.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; import java.util.NoSuchElementException; @@ -6,11 +6,11 @@ import org.springframework.stereotype.Service; -import sellerlee.back.article.domain.Article; -import sellerlee.back.article.domain.ArticleRepository; -import sellerlee.back.article.domain.TradeState; -import sellerlee.back.member.domain.Member; -import sellerlee.back.security.web.AuthorizationException; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.api.article.domain.ArticleRepository; +import com.jikgorae.api.article.domain.TradeState; +import com.jikgorae.api.security.web.AuthorizationException; +import com.jikgorae.common.member.domain.Member; @Service public class ArticleService { diff --git a/back/src/main/java/sellerlee/back/article/application/ArticleViewService.java b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleViewService.java similarity index 89% rename from back/src/main/java/sellerlee/back/article/application/ArticleViewService.java rename to back/api/src/main/java/com/jikgorae/api/article/application/ArticleViewService.java index 384ef91d..683b3e70 100644 --- a/back/src/main/java/sellerlee/back/article/application/ArticleViewService.java +++ b/back/api/src/main/java/com/jikgorae/api/article/application/ArticleViewService.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; import static java.util.stream.Collectors.*; @@ -11,15 +11,15 @@ import org.springframework.data.domain.PageRequest; import org.springframework.stereotype.Service; -import sellerlee.back.article.domain.Article; -import sellerlee.back.article.domain.ArticleRepository; -import sellerlee.back.article.domain.Category; -import sellerlee.back.article.domain.TradeState; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCount; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCountRepository; -import sellerlee.back.favorite.domain.Favorite; -import sellerlee.back.favorite.domain.FavoriteRepository; -import sellerlee.back.member.domain.Member; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.api.article.domain.ArticleRepository; +import com.jikgorae.api.article.domain.Category; +import com.jikgorae.api.article.domain.TradeState; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCount; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCountRepository; +import com.jikgorae.api.favorite.domain.Favorite; +import com.jikgorae.api.favorite.domain.FavoriteRepository; +import com.jikgorae.common.member.domain.Member; @Service public class ArticleViewService { diff --git a/back/src/main/java/sellerlee/back/article/application/AuthorResponse.java b/back/api/src/main/java/com/jikgorae/api/article/application/AuthorResponse.java similarity index 87% rename from back/src/main/java/sellerlee/back/article/application/AuthorResponse.java rename to back/api/src/main/java/com/jikgorae/api/article/application/AuthorResponse.java index a7c3ba07..1ece2cf9 100644 --- a/back/src/main/java/sellerlee/back/article/application/AuthorResponse.java +++ b/back/api/src/main/java/com/jikgorae/api/article/application/AuthorResponse.java @@ -1,6 +1,6 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; -import sellerlee.back.member.domain.Member; +import com.jikgorae.common.member.domain.Member; public class AuthorResponse { private String nickname; diff --git a/back/src/main/java/sellerlee/back/article/application/FeedResponse.java b/back/api/src/main/java/com/jikgorae/api/article/application/FeedResponse.java similarity index 95% rename from back/src/main/java/sellerlee/back/article/application/FeedResponse.java rename to back/api/src/main/java/com/jikgorae/api/article/application/FeedResponse.java index cfa2b8b6..07138cf2 100644 --- a/back/src/main/java/sellerlee/back/article/application/FeedResponse.java +++ b/back/api/src/main/java/com/jikgorae/api/article/application/FeedResponse.java @@ -1,12 +1,12 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; import static java.util.stream.Collectors.*; import java.util.List; import java.util.stream.IntStream; +import com.jikgorae.api.article.domain.Article; import com.querydsl.core.annotations.QueryProjection; -import sellerlee.back.article.domain.Article; public class FeedResponse { private Long id; diff --git a/back/src/main/java/sellerlee/back/article/application/TradeStateRequest.java b/back/api/src/main/java/com/jikgorae/api/article/application/TradeStateRequest.java similarity index 85% rename from back/src/main/java/sellerlee/back/article/application/TradeStateRequest.java rename to back/api/src/main/java/com/jikgorae/api/article/application/TradeStateRequest.java index 06b965be..5e431e27 100644 --- a/back/src/main/java/sellerlee/back/article/application/TradeStateRequest.java +++ b/back/api/src/main/java/com/jikgorae/api/article/application/TradeStateRequest.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; public class TradeStateRequest { private String tradeState; diff --git a/back/src/main/java/sellerlee/back/article/domain/Article.java b/back/api/src/main/java/com/jikgorae/api/article/domain/Article.java similarity index 93% rename from back/src/main/java/sellerlee/back/article/domain/Article.java rename to back/api/src/main/java/com/jikgorae/api/article/domain/Article.java index 64600413..f81cd03d 100644 --- a/back/src/main/java/sellerlee/back/article/domain/Article.java +++ b/back/api/src/main/java/com/jikgorae/api/article/domain/Article.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.domain; +package com.jikgorae.api.article.domain; import java.time.LocalDateTime; @@ -15,10 +15,9 @@ import javax.persistence.Lob; import javax.persistence.ManyToOne; -import com.querydsl.core.annotations.QueryInit; -import sellerlee.back.common.domain.BaseTimeEntity; -import sellerlee.back.member.domain.Member; -import sellerlee.back.security.web.AuthorizationException; +import com.jikgorae.api.security.web.AuthorizationException; +import com.jikgorae.common.BaseTimeEntity; +import com.jikgorae.common.member.domain.Member; @Entity public class Article extends BaseTimeEntity { diff --git a/back/src/main/java/sellerlee/back/article/domain/ArticleRepository.java b/back/api/src/main/java/com/jikgorae/api/article/domain/ArticleRepository.java similarity index 90% rename from back/src/main/java/sellerlee/back/article/domain/ArticleRepository.java rename to back/api/src/main/java/com/jikgorae/api/article/domain/ArticleRepository.java index c21c60b0..17fa4a4c 100644 --- a/back/src/main/java/sellerlee/back/article/domain/ArticleRepository.java +++ b/back/api/src/main/java/com/jikgorae/api/article/domain/ArticleRepository.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.domain; +package com.jikgorae.api.article.domain; import java.util.List; import java.util.Optional; @@ -7,7 +7,7 @@ import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.JpaRepository; -import sellerlee.back.member.domain.Member; +import com.jikgorae.common.member.domain.Member; public interface ArticleRepository extends JpaRepository { Page
findByIdLessThanAndTradeStateOrderByIdDesc(Long lastArticleId, diff --git a/back/src/main/java/sellerlee/back/article/domain/Category.java b/back/api/src/main/java/com/jikgorae/api/article/domain/Category.java similarity index 96% rename from back/src/main/java/sellerlee/back/article/domain/Category.java rename to back/api/src/main/java/com/jikgorae/api/article/domain/Category.java index 05977fed..d6af5a77 100644 --- a/back/src/main/java/sellerlee/back/article/domain/Category.java +++ b/back/api/src/main/java/com/jikgorae/api/article/domain/Category.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.domain; +package com.jikgorae.api.article.domain; import java.util.Arrays; diff --git a/back/src/main/java/sellerlee/back/article/domain/Photos.java b/back/api/src/main/java/com/jikgorae/api/article/domain/Photos.java similarity index 97% rename from back/src/main/java/sellerlee/back/article/domain/Photos.java rename to back/api/src/main/java/com/jikgorae/api/article/domain/Photos.java index 9ff9c2df..4cc0c776 100644 --- a/back/src/main/java/sellerlee/back/article/domain/Photos.java +++ b/back/api/src/main/java/com/jikgorae/api/article/domain/Photos.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.domain; +package com.jikgorae.api.article.domain; import static java.util.Collections.*; diff --git a/back/src/main/java/sellerlee/back/article/domain/Tag.java b/back/api/src/main/java/com/jikgorae/api/article/domain/Tag.java similarity index 94% rename from back/src/main/java/sellerlee/back/article/domain/Tag.java rename to back/api/src/main/java/com/jikgorae/api/article/domain/Tag.java index ec2e1b28..77aa0161 100644 --- a/back/src/main/java/sellerlee/back/article/domain/Tag.java +++ b/back/api/src/main/java/com/jikgorae/api/article/domain/Tag.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.domain; +package com.jikgorae.api.article.domain; import java.util.Objects; diff --git a/back/src/main/java/sellerlee/back/article/domain/Tags.java b/back/api/src/main/java/com/jikgorae/api/article/domain/Tags.java similarity index 97% rename from back/src/main/java/sellerlee/back/article/domain/Tags.java rename to back/api/src/main/java/com/jikgorae/api/article/domain/Tags.java index 1d7e30fd..d0d53fb1 100644 --- a/back/src/main/java/sellerlee/back/article/domain/Tags.java +++ b/back/api/src/main/java/com/jikgorae/api/article/domain/Tags.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.domain; +package com.jikgorae.api.article.domain; import java.util.ArrayList; import java.util.Arrays; diff --git a/back/src/main/java/sellerlee/back/article/domain/TradeState.java b/back/api/src/main/java/com/jikgorae/api/article/domain/TradeState.java similarity index 94% rename from back/src/main/java/sellerlee/back/article/domain/TradeState.java rename to back/api/src/main/java/com/jikgorae/api/article/domain/TradeState.java index 58caac2d..6848b129 100644 --- a/back/src/main/java/sellerlee/back/article/domain/TradeState.java +++ b/back/api/src/main/java/com/jikgorae/api/article/domain/TradeState.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.domain; +package com.jikgorae.api.article.domain; import java.util.Arrays; diff --git a/back/src/main/java/sellerlee/back/article/presentation/ArticleController.java b/back/api/src/main/java/com/jikgorae/api/article/presentation/ArticleController.java similarity index 81% rename from back/src/main/java/sellerlee/back/article/presentation/ArticleController.java rename to back/api/src/main/java/com/jikgorae/api/article/presentation/ArticleController.java index 845b16bd..c9478151 100644 --- a/back/src/main/java/sellerlee/back/article/presentation/ArticleController.java +++ b/back/api/src/main/java/com/jikgorae/api/article/presentation/ArticleController.java @@ -1,7 +1,6 @@ -package sellerlee.back.article.presentation; +package com.jikgorae.api.article.presentation; -import static sellerlee.back.article.presentation.ArticleController.*; -import static sellerlee.back.common.PageController.*; +import static com.jikgorae.api.article.presentation.ArticleController.*; import java.net.URI; import java.util.List; @@ -17,21 +16,21 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import sellerlee.back.article.application.ArticleCardResponse; -import sellerlee.back.article.application.ArticleRequest; -import sellerlee.back.article.application.ArticleResponse; -import sellerlee.back.article.application.ArticleService; -import sellerlee.back.article.application.ArticleViewService; -import sellerlee.back.article.application.FeedResponse; -import sellerlee.back.article.application.TradeStateRequest; -import sellerlee.back.article.query.ArticleDao; -import sellerlee.back.member.domain.Member; -import sellerlee.back.security.core.LoginMember; +import com.jikgorae.api.article.application.ArticleCardResponse; +import com.jikgorae.api.article.application.ArticleRequest; +import com.jikgorae.api.article.application.ArticleResponse; +import com.jikgorae.api.article.application.ArticleService; +import com.jikgorae.api.article.application.ArticleViewService; +import com.jikgorae.api.article.application.FeedResponse; +import com.jikgorae.api.article.application.TradeStateRequest; +import com.jikgorae.api.article.query.ArticleDao; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.security.core.LoginMember; @RestController -@RequestMapping(API_URI + ARTICLE_URI) +@RequestMapping(ARTICLE_API_URI) public class ArticleController { - public static final String ARTICLE_URI = "/articles"; + public static final String ARTICLE_API_URI = "/api/articles"; public static final String TRADE_STATE_URI = "/trade-state"; private final ArticleService articleService; @@ -50,7 +49,7 @@ public ResponseEntity create(@RequestBody ArticleRequest request, @LoginMember Member loginMember) { Long articleId = articleService.create(request, loginMember); return ResponseEntity - .created(URI.create(ARTICLE_URI + "/" + articleId)) + .created(URI.create(ARTICLE_API_URI + "/" + articleId)) .build(); } diff --git a/back/src/main/java/sellerlee/back/article/query/ArticleDao.java b/back/api/src/main/java/com/jikgorae/api/article/query/ArticleDao.java similarity index 74% rename from back/src/main/java/sellerlee/back/article/query/ArticleDao.java rename to back/api/src/main/java/com/jikgorae/api/article/query/ArticleDao.java index 1738c8f6..b9101d23 100644 --- a/back/src/main/java/sellerlee/back/article/query/ArticleDao.java +++ b/back/api/src/main/java/com/jikgorae/api/article/query/ArticleDao.java @@ -1,20 +1,20 @@ -package sellerlee.back.article.query; +package com.jikgorae.api.article.query; -import static sellerlee.back.article.domain.QArticle.*; -import static sellerlee.back.articlefavoritecount.domain.QArticleFavoriteCount.*; -import static sellerlee.back.favorite.domain.QFavorite.*; +import static com.jikgorae.api.article.domain.QArticle.*; +import static com.jikgorae.api.articlefavoritecount.domain.QArticleFavoriteCount.*; +import static com.jikgorae.api.favorite.domain.QFavorite.*; import java.util.List; import org.springframework.stereotype.Component; +import com.jikgorae.api.article.application.FeedResponse; +import com.jikgorae.api.article.application.QFeedResponse; +import com.jikgorae.api.article.domain.TradeState; +import com.jikgorae.common.member.domain.Member; import com.querydsl.core.types.ExpressionUtils; import com.querydsl.jpa.JPAExpressions; import com.querydsl.jpa.impl.JPAQueryFactory; -import sellerlee.back.article.application.FeedResponse; -import sellerlee.back.article.application.QFeedResponse; -import sellerlee.back.article.domain.TradeState; -import sellerlee.back.member.domain.Member; @Component public class ArticleDao { diff --git a/back/src/main/java/sellerlee/back/articlefavoritecount/application/ArticleFavoriteCountService.java b/back/api/src/main/java/com/jikgorae/api/articlefavoritecount/application/ArticleFavoriteCountService.java similarity index 77% rename from back/src/main/java/sellerlee/back/articlefavoritecount/application/ArticleFavoriteCountService.java rename to back/api/src/main/java/com/jikgorae/api/articlefavoritecount/application/ArticleFavoriteCountService.java index 87dbd445..c04b9536 100644 --- a/back/src/main/java/sellerlee/back/articlefavoritecount/application/ArticleFavoriteCountService.java +++ b/back/api/src/main/java/com/jikgorae/api/articlefavoritecount/application/ArticleFavoriteCountService.java @@ -1,4 +1,4 @@ -package sellerlee.back.articlefavoritecount.application; +package com.jikgorae.api.articlefavoritecount.application; import static org.springframework.data.util.Optionals.*; @@ -8,10 +8,10 @@ import org.springframework.stereotype.Service; -import sellerlee.back.article.domain.Article; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCount; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCountFactory; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCountRepository; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCount; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCountFactory; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCountRepository; @Service public class ArticleFavoriteCountService { diff --git a/back/src/main/java/sellerlee/back/articlefavoritecount/domain/ArticleFavoriteCount.java b/back/api/src/main/java/com/jikgorae/api/articlefavoritecount/domain/ArticleFavoriteCount.java similarity index 92% rename from back/src/main/java/sellerlee/back/articlefavoritecount/domain/ArticleFavoriteCount.java rename to back/api/src/main/java/com/jikgorae/api/articlefavoritecount/domain/ArticleFavoriteCount.java index 77039471..83df4258 100644 --- a/back/src/main/java/sellerlee/back/articlefavoritecount/domain/ArticleFavoriteCount.java +++ b/back/api/src/main/java/com/jikgorae/api/articlefavoritecount/domain/ArticleFavoriteCount.java @@ -1,4 +1,4 @@ -package sellerlee.back.articlefavoritecount.domain; +package com.jikgorae.api.articlefavoritecount.domain; import javax.persistence.Column; import javax.persistence.Entity; @@ -8,7 +8,7 @@ import javax.persistence.JoinColumn; import javax.persistence.OneToOne; -import sellerlee.back.article.domain.Article; +import com.jikgorae.api.article.domain.Article; @Entity public class ArticleFavoriteCount { diff --git a/back/src/main/java/sellerlee/back/articlefavoritecount/domain/ArticleFavoriteCountFactory.java b/back/api/src/main/java/com/jikgorae/api/articlefavoritecount/domain/ArticleFavoriteCountFactory.java similarity index 78% rename from back/src/main/java/sellerlee/back/articlefavoritecount/domain/ArticleFavoriteCountFactory.java rename to back/api/src/main/java/com/jikgorae/api/articlefavoritecount/domain/ArticleFavoriteCountFactory.java index b838dbd5..6066eae1 100644 --- a/back/src/main/java/sellerlee/back/articlefavoritecount/domain/ArticleFavoriteCountFactory.java +++ b/back/api/src/main/java/com/jikgorae/api/articlefavoritecount/domain/ArticleFavoriteCountFactory.java @@ -1,6 +1,6 @@ -package sellerlee.back.articlefavoritecount.domain; +package com.jikgorae.api.articlefavoritecount.domain; -import sellerlee.back.article.domain.Article; +import com.jikgorae.api.article.domain.Article; public class ArticleFavoriteCountFactory { private static final long FIRST_FAVORITE_COUNT = 1L; diff --git a/back/src/main/java/sellerlee/back/articlefavoritecount/domain/ArticleFavoriteCountRepository.java b/back/api/src/main/java/com/jikgorae/api/articlefavoritecount/domain/ArticleFavoriteCountRepository.java similarity index 78% rename from back/src/main/java/sellerlee/back/articlefavoritecount/domain/ArticleFavoriteCountRepository.java rename to back/api/src/main/java/com/jikgorae/api/articlefavoritecount/domain/ArticleFavoriteCountRepository.java index 92b67dbd..12bfb8c8 100644 --- a/back/src/main/java/sellerlee/back/articlefavoritecount/domain/ArticleFavoriteCountRepository.java +++ b/back/api/src/main/java/com/jikgorae/api/articlefavoritecount/domain/ArticleFavoriteCountRepository.java @@ -1,11 +1,11 @@ -package sellerlee.back.articlefavoritecount.domain; +package com.jikgorae.api.articlefavoritecount.domain; import java.util.List; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; -import sellerlee.back.article.domain.Article; +import com.jikgorae.api.article.domain.Article; public interface ArticleFavoriteCountRepository extends JpaRepository { Optional findByArticle(Article article); diff --git a/back/src/main/java/sellerlee/back/chatroom/application/ChatRoomCreateRequest.java b/back/api/src/main/java/com/jikgorae/api/chatroom/application/ChatRoomCreateRequest.java similarity index 83% rename from back/src/main/java/sellerlee/back/chatroom/application/ChatRoomCreateRequest.java rename to back/api/src/main/java/com/jikgorae/api/chatroom/application/ChatRoomCreateRequest.java index 072b5d27..efc8cac4 100644 --- a/back/src/main/java/sellerlee/back/chatroom/application/ChatRoomCreateRequest.java +++ b/back/api/src/main/java/com/jikgorae/api/chatroom/application/ChatRoomCreateRequest.java @@ -1,6 +1,6 @@ -package sellerlee.back.chatroom.application; +package com.jikgorae.api.chatroom.application; -import sellerlee.back.chatroom.domain.ChatRoom; +import com.jikgorae.api.chatroom.domain.ChatRoom; public class ChatRoomCreateRequest { private Long articleId; diff --git a/back/src/main/java/sellerlee/back/chatroom/application/ChatRoomResponse.java b/back/api/src/main/java/com/jikgorae/api/chatroom/application/ChatRoomResponse.java similarity index 89% rename from back/src/main/java/sellerlee/back/chatroom/application/ChatRoomResponse.java rename to back/api/src/main/java/com/jikgorae/api/chatroom/application/ChatRoomResponse.java index ec124e0d..aec86e50 100644 --- a/back/src/main/java/sellerlee/back/chatroom/application/ChatRoomResponse.java +++ b/back/api/src/main/java/com/jikgorae/api/chatroom/application/ChatRoomResponse.java @@ -1,10 +1,10 @@ -package sellerlee.back.chatroom.application; +package com.jikgorae.api.chatroom.application; import static java.util.stream.Collectors.*; import java.util.List; -import sellerlee.back.chatroom.domain.ChatRoom; +import com.jikgorae.api.chatroom.domain.ChatRoom; public class ChatRoomResponse { private String avatar; diff --git a/back/src/main/java/sellerlee/back/chatroom/application/ChatRoomService.java b/back/api/src/main/java/com/jikgorae/api/chatroom/application/ChatRoomService.java similarity index 81% rename from back/src/main/java/sellerlee/back/chatroom/application/ChatRoomService.java rename to back/api/src/main/java/com/jikgorae/api/chatroom/application/ChatRoomService.java index e8406585..0b573ae5 100644 --- a/back/src/main/java/sellerlee/back/chatroom/application/ChatRoomService.java +++ b/back/api/src/main/java/com/jikgorae/api/chatroom/application/ChatRoomService.java @@ -1,11 +1,11 @@ -package sellerlee.back.chatroom.application; +package com.jikgorae.api.chatroom.application; import java.util.List; import org.springframework.stereotype.Service; -import sellerlee.back.chatroom.domain.ChatRoom; -import sellerlee.back.chatroom.domain.ChatRoomRepository; +import com.jikgorae.api.chatroom.domain.ChatRoom; +import com.jikgorae.api.chatroom.domain.ChatRoomRepository; @Service public class ChatRoomService { diff --git a/back/src/main/java/sellerlee/back/chatroom/domain/ChatRoom.java b/back/api/src/main/java/com/jikgorae/api/chatroom/domain/ChatRoom.java similarity index 89% rename from back/src/main/java/sellerlee/back/chatroom/domain/ChatRoom.java rename to back/api/src/main/java/com/jikgorae/api/chatroom/domain/ChatRoom.java index 9bcbbc02..c851e525 100644 --- a/back/src/main/java/sellerlee/back/chatroom/domain/ChatRoom.java +++ b/back/api/src/main/java/com/jikgorae/api/chatroom/domain/ChatRoom.java @@ -1,4 +1,4 @@ -package sellerlee.back.chatroom.domain; +package com.jikgorae.api.chatroom.domain; import javax.persistence.Column; import javax.persistence.Entity; @@ -9,8 +9,8 @@ import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; -import sellerlee.back.article.domain.Article; -import sellerlee.back.member.domain.Member; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.common.member.domain.Member; @Entity public class ChatRoom { diff --git a/back/src/main/java/sellerlee/back/chatroom/domain/ChatRoomRepository.java b/back/api/src/main/java/com/jikgorae/api/chatroom/domain/ChatRoomRepository.java similarity index 84% rename from back/src/main/java/sellerlee/back/chatroom/domain/ChatRoomRepository.java rename to back/api/src/main/java/com/jikgorae/api/chatroom/domain/ChatRoomRepository.java index d6c6b9a4..f5822ce1 100644 --- a/back/src/main/java/sellerlee/back/chatroom/domain/ChatRoomRepository.java +++ b/back/api/src/main/java/com/jikgorae/api/chatroom/domain/ChatRoomRepository.java @@ -1,4 +1,4 @@ -package sellerlee.back.chatroom.domain; +package com.jikgorae.api.chatroom.domain; import java.util.List; diff --git a/back/src/main/java/sellerlee/back/chatroom/presentation/ChatRoomController.java b/back/api/src/main/java/com/jikgorae/api/chatroom/presentation/ChatRoomController.java similarity index 69% rename from back/src/main/java/sellerlee/back/chatroom/presentation/ChatRoomController.java rename to back/api/src/main/java/com/jikgorae/api/chatroom/presentation/ChatRoomController.java index 4a184e0c..a9411031 100644 --- a/back/src/main/java/sellerlee/back/chatroom/presentation/ChatRoomController.java +++ b/back/api/src/main/java/com/jikgorae/api/chatroom/presentation/ChatRoomController.java @@ -1,7 +1,6 @@ -package sellerlee.back.chatroom.presentation; +package com.jikgorae.api.chatroom.presentation; -import static sellerlee.back.chatroom.presentation.ChatRoomController.*; -import static sellerlee.back.common.PageController.*; +import static com.jikgorae.api.chatroom.presentation.ChatRoomController.*; import java.net.URI; import java.util.List; @@ -14,14 +13,14 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import sellerlee.back.chatroom.application.ChatRoomCreateRequest; -import sellerlee.back.chatroom.application.ChatRoomResponse; -import sellerlee.back.chatroom.application.ChatRoomService; +import com.jikgorae.api.chatroom.application.ChatRoomCreateRequest; +import com.jikgorae.api.chatroom.application.ChatRoomResponse; +import com.jikgorae.api.chatroom.application.ChatRoomService; @RestController -@RequestMapping(API_URI + CHAT_ROOM_URI) +@RequestMapping(CHAT_ROOM_API_URI) public class ChatRoomController { - public static final String CHAT_ROOM_URI = "/chat-rooms"; + public static final String CHAT_ROOM_API_URI = "/api/chat-rooms"; private final ChatRoomService chatRoomService; @@ -34,7 +33,7 @@ public ResponseEntity createChatRoom(@RequestBody ChatRoomCreateRequest re Long chatRoomId = chatRoomService.createChatRoom(request); return ResponseEntity - .created(URI.create(CHAT_ROOM_URI + "/" + chatRoomId)) + .created(URI.create(CHAT_ROOM_API_URI + "/" + chatRoomId)) .build(); } diff --git a/back/src/main/java/sellerlee/back/common/PageController.java b/back/api/src/main/java/com/jikgorae/api/common/PageController.java similarity index 85% rename from back/src/main/java/sellerlee/back/common/PageController.java rename to back/api/src/main/java/com/jikgorae/api/common/PageController.java index 4bfeaeee..a86a5ee7 100644 --- a/back/src/main/java/sellerlee/back/common/PageController.java +++ b/back/api/src/main/java/com/jikgorae/api/common/PageController.java @@ -1,11 +1,10 @@ -package sellerlee.back.common; +package com.jikgorae.api.common; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class PageController { - public static final String API_URI= "/api"; public static final String API_DOCS_URI = "/docs/1.1.0"; public static final String PRIVACY_URI = "/privacy"; diff --git a/back/api/src/main/java/com/jikgorae/api/common/config/JpaConfig.java b/back/api/src/main/java/com/jikgorae/api/common/config/JpaConfig.java new file mode 100644 index 00000000..98a31404 --- /dev/null +++ b/back/api/src/main/java/com/jikgorae/api/common/config/JpaConfig.java @@ -0,0 +1,13 @@ +package com.jikgorae.api.common.config; + +import org.springframework.boot.autoconfigure.domain.EntityScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.jpa.repository.config.EnableJpaAuditing; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; + +@EnableJpaRepositories("com.jikgorae.*") +@EntityScan("com.jikgorae.*") +@EnableJpaAuditing +@Configuration +public class JpaConfig { +} diff --git a/back/src/main/java/sellerlee/back/common/config/QuerydslConfiguration.java b/back/api/src/main/java/com/jikgorae/api/common/config/QuerydslConfiguration.java similarity index 87% rename from back/src/main/java/sellerlee/back/common/config/QuerydslConfiguration.java rename to back/api/src/main/java/com/jikgorae/api/common/config/QuerydslConfiguration.java index cc571525..f733e2d7 100644 --- a/back/src/main/java/sellerlee/back/common/config/QuerydslConfiguration.java +++ b/back/api/src/main/java/com/jikgorae/api/common/config/QuerydslConfiguration.java @@ -1,6 +1,5 @@ -package sellerlee.back.common.config; +package com.jikgorae.api.common.config; -import javax.persistence.Basic; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; diff --git a/back/src/main/java/sellerlee/back/evaluation/application/EvaluationRequest.java b/back/api/src/main/java/com/jikgorae/api/evaluation/application/EvaluationRequest.java similarity index 68% rename from back/src/main/java/sellerlee/back/evaluation/application/EvaluationRequest.java rename to back/api/src/main/java/com/jikgorae/api/evaluation/application/EvaluationRequest.java index e808f2bb..5e018c12 100644 --- a/back/src/main/java/sellerlee/back/evaluation/application/EvaluationRequest.java +++ b/back/api/src/main/java/com/jikgorae/api/evaluation/application/EvaluationRequest.java @@ -1,11 +1,11 @@ -package sellerlee.back.evaluation.application; +package com.jikgorae.api.evaluation.application; import java.util.List; -import sellerlee.back.evaluation.domain.Evaluation; -import sellerlee.back.evaluation.domain.Score; -import sellerlee.back.member.domain.Member; -import sellerlee.back.trade.domain.Trade; +import com.jikgorae.api.evaluation.domain.Evaluation; +import com.jikgorae.api.evaluation.domain.Score; +import com.jikgorae.api.trade.domain.Trade; +import com.jikgorae.common.member.domain.Member; public class EvaluationRequest { private List scores; diff --git a/back/src/main/java/sellerlee/back/evaluation/application/EvaluationService.java b/back/api/src/main/java/com/jikgorae/api/evaluation/application/EvaluationService.java similarity index 80% rename from back/src/main/java/sellerlee/back/evaluation/application/EvaluationService.java rename to back/api/src/main/java/com/jikgorae/api/evaluation/application/EvaluationService.java index f5509070..587402f5 100644 --- a/back/src/main/java/sellerlee/back/evaluation/application/EvaluationService.java +++ b/back/api/src/main/java/com/jikgorae/api/evaluation/application/EvaluationService.java @@ -1,8 +1,8 @@ -package sellerlee.back.evaluation.application; +package com.jikgorae.api.evaluation.application; import org.springframework.stereotype.Service; -import sellerlee.back.evaluation.domain.EvaluationRepository; +import com.jikgorae.api.evaluation.domain.EvaluationRepository; @Service public class EvaluationService { diff --git a/back/src/main/java/sellerlee/back/evaluation/domain/Evaluation.java b/back/api/src/main/java/com/jikgorae/api/evaluation/domain/Evaluation.java similarity index 90% rename from back/src/main/java/sellerlee/back/evaluation/domain/Evaluation.java rename to back/api/src/main/java/com/jikgorae/api/evaluation/domain/Evaluation.java index f3be28d8..d8e07169 100644 --- a/back/src/main/java/sellerlee/back/evaluation/domain/Evaluation.java +++ b/back/api/src/main/java/com/jikgorae/api/evaluation/domain/Evaluation.java @@ -1,4 +1,4 @@ -package sellerlee.back.evaluation.domain; +package com.jikgorae.api.evaluation.domain; import java.util.List; @@ -13,8 +13,8 @@ import javax.persistence.ManyToOne; import javax.persistence.OneToOne; -import sellerlee.back.member.domain.Member; -import sellerlee.back.trade.domain.Trade; +import com.jikgorae.api.trade.domain.Trade; +import com.jikgorae.common.member.domain.Member; @Entity public class Evaluation { diff --git a/back/src/main/java/sellerlee/back/evaluation/domain/EvaluationRepository.java b/back/api/src/main/java/com/jikgorae/api/evaluation/domain/EvaluationRepository.java similarity index 76% rename from back/src/main/java/sellerlee/back/evaluation/domain/EvaluationRepository.java rename to back/api/src/main/java/com/jikgorae/api/evaluation/domain/EvaluationRepository.java index c058272b..886f5a50 100644 --- a/back/src/main/java/sellerlee/back/evaluation/domain/EvaluationRepository.java +++ b/back/api/src/main/java/com/jikgorae/api/evaluation/domain/EvaluationRepository.java @@ -1,4 +1,4 @@ -package sellerlee.back.evaluation.domain; +package com.jikgorae.api.evaluation.domain; import org.springframework.data.jpa.repository.JpaRepository; diff --git a/back/src/main/java/sellerlee/back/evaluation/domain/Score.java b/back/api/src/main/java/com/jikgorae/api/evaluation/domain/Score.java similarity index 95% rename from back/src/main/java/sellerlee/back/evaluation/domain/Score.java rename to back/api/src/main/java/com/jikgorae/api/evaluation/domain/Score.java index c8f910f6..b68e5671 100644 --- a/back/src/main/java/sellerlee/back/evaluation/domain/Score.java +++ b/back/api/src/main/java/com/jikgorae/api/evaluation/domain/Score.java @@ -1,4 +1,4 @@ -package sellerlee.back.evaluation.domain; +package com.jikgorae.api.evaluation.domain; import java.util.Objects; diff --git a/back/src/main/java/sellerlee/back/evaluation/presentation/EvaluationController.java b/back/api/src/main/java/com/jikgorae/api/evaluation/presentation/EvaluationController.java similarity index 62% rename from back/src/main/java/sellerlee/back/evaluation/presentation/EvaluationController.java rename to back/api/src/main/java/com/jikgorae/api/evaluation/presentation/EvaluationController.java index b06bf1d2..22eb20c5 100644 --- a/back/src/main/java/sellerlee/back/evaluation/presentation/EvaluationController.java +++ b/back/api/src/main/java/com/jikgorae/api/evaluation/presentation/EvaluationController.java @@ -1,7 +1,6 @@ -package sellerlee.back.evaluation.presentation; +package com.jikgorae.api.evaluation.presentation; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.evaluation.presentation.EvaluationController.*; +import static com.jikgorae.api.evaluation.presentation.EvaluationController.*; import java.net.URI; @@ -11,13 +10,13 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import sellerlee.back.evaluation.application.EvaluationRequest; -import sellerlee.back.evaluation.application.EvaluationService; +import com.jikgorae.api.evaluation.application.EvaluationRequest; +import com.jikgorae.api.evaluation.application.EvaluationService; -@RequestMapping(API_URI + EVALUATION_URI) +@RequestMapping(EVALUATION_API_URI) @RestController public class EvaluationController { - public static final String EVALUATION_URI = "/evaluations"; + public static final String EVALUATION_API_URI = "/api/evaluations"; private final EvaluationService evaluationService; @@ -30,7 +29,7 @@ public ResponseEntity createEvaluation(@RequestBody EvaluationRequest requ Long evaluationId = evaluationService.createEvaluation(request); return ResponseEntity - .created(URI.create(EVALUATION_URI + "/" + evaluationId)) + .created(URI.create(EVALUATION_API_URI + "/" + evaluationId)) .build(); } } diff --git a/back/src/main/java/sellerlee/back/favorite/application/FavoriteCreatedEvent.java b/back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteCreatedEvent.java similarity index 77% rename from back/src/main/java/sellerlee/back/favorite/application/FavoriteCreatedEvent.java rename to back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteCreatedEvent.java index 96db0474..bfd47664 100644 --- a/back/src/main/java/sellerlee/back/favorite/application/FavoriteCreatedEvent.java +++ b/back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteCreatedEvent.java @@ -1,8 +1,8 @@ -package sellerlee.back.favorite.application; +package com.jikgorae.api.favorite.application; import org.springframework.context.ApplicationEvent; -import sellerlee.back.favorite.domain.Favorite; +import com.jikgorae.api.favorite.domain.Favorite; public class FavoriteCreatedEvent extends ApplicationEvent { private final Favorite favorite; diff --git a/back/src/main/java/sellerlee/back/favorite/application/FavoriteRemovedEvent.java b/back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteRemovedEvent.java similarity index 77% rename from back/src/main/java/sellerlee/back/favorite/application/FavoriteRemovedEvent.java rename to back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteRemovedEvent.java index 2e25f4de..0a652b3b 100644 --- a/back/src/main/java/sellerlee/back/favorite/application/FavoriteRemovedEvent.java +++ b/back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteRemovedEvent.java @@ -1,8 +1,8 @@ -package sellerlee.back.favorite.application; +package com.jikgorae.api.favorite.application; import org.springframework.context.ApplicationEvent; -import sellerlee.back.favorite.domain.Favorite; +import com.jikgorae.api.favorite.domain.Favorite; public class FavoriteRemovedEvent extends ApplicationEvent { private final Favorite favorite; diff --git a/back/src/main/java/sellerlee/back/favorite/application/FavoriteRequest.java b/back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteRequest.java similarity index 84% rename from back/src/main/java/sellerlee/back/favorite/application/FavoriteRequest.java rename to back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteRequest.java index 848b6380..c39a755e 100644 --- a/back/src/main/java/sellerlee/back/favorite/application/FavoriteRequest.java +++ b/back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteRequest.java @@ -1,4 +1,4 @@ -package sellerlee.back.favorite.application; +package com.jikgorae.api.favorite.application; public class FavoriteRequest { private Long articleId; diff --git a/back/src/main/java/sellerlee/back/favorite/application/FavoriteService.java b/back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteService.java similarity index 77% rename from back/src/main/java/sellerlee/back/favorite/application/FavoriteService.java rename to back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteService.java index df1c90c2..e546550a 100644 --- a/back/src/main/java/sellerlee/back/favorite/application/FavoriteService.java +++ b/back/api/src/main/java/com/jikgorae/api/favorite/application/FavoriteService.java @@ -1,4 +1,4 @@ -package sellerlee.back.favorite.application; +package com.jikgorae.api.favorite.application; import java.util.List; @@ -6,12 +6,12 @@ import org.springframework.stereotype.Service; -import sellerlee.back.article.application.ArticleCardResponse; -import sellerlee.back.article.application.ArticleViewService; -import sellerlee.back.article.domain.Article; -import sellerlee.back.favorite.domain.Favorite; -import sellerlee.back.favorite.domain.FavoriteRepository; -import sellerlee.back.member.domain.Member; +import com.jikgorae.api.article.application.ArticleCardResponse; +import com.jikgorae.api.article.application.ArticleViewService; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.api.favorite.domain.Favorite; +import com.jikgorae.api.favorite.domain.FavoriteRepository; +import com.jikgorae.common.member.domain.Member; @Service public class FavoriteService { diff --git a/back/src/main/java/sellerlee/back/favorite/domain/Favorite.java b/back/api/src/main/java/com/jikgorae/api/favorite/domain/Favorite.java similarity index 84% rename from back/src/main/java/sellerlee/back/favorite/domain/Favorite.java rename to back/api/src/main/java/com/jikgorae/api/favorite/domain/Favorite.java index 17fbda5b..20abcacf 100644 --- a/back/src/main/java/sellerlee/back/favorite/domain/Favorite.java +++ b/back/api/src/main/java/com/jikgorae/api/favorite/domain/Favorite.java @@ -1,4 +1,4 @@ -package sellerlee.back.favorite.domain; +package com.jikgorae.api.favorite.domain; import javax.persistence.Column; import javax.persistence.Entity; @@ -11,10 +11,10 @@ import org.springframework.data.domain.AbstractAggregateRoot; -import sellerlee.back.article.domain.Article; -import sellerlee.back.favorite.application.FavoriteCreatedEvent; -import sellerlee.back.favorite.application.FavoriteRemovedEvent; -import sellerlee.back.member.domain.Member; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.api.favorite.application.FavoriteCreatedEvent; +import com.jikgorae.api.favorite.application.FavoriteRemovedEvent; +import com.jikgorae.common.member.domain.Member; @Entity public class Favorite extends AbstractAggregateRoot { diff --git a/back/src/main/java/sellerlee/back/favorite/domain/FavoriteRepository.java b/back/api/src/main/java/com/jikgorae/api/favorite/domain/FavoriteRepository.java similarity index 80% rename from back/src/main/java/sellerlee/back/favorite/domain/FavoriteRepository.java rename to back/api/src/main/java/com/jikgorae/api/favorite/domain/FavoriteRepository.java index cf404d32..ed716160 100644 --- a/back/src/main/java/sellerlee/back/favorite/domain/FavoriteRepository.java +++ b/back/api/src/main/java/com/jikgorae/api/favorite/domain/FavoriteRepository.java @@ -1,12 +1,12 @@ -package sellerlee.back.favorite.domain; +package com.jikgorae.api.favorite.domain; import java.util.List; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; -import sellerlee.back.article.domain.Article; -import sellerlee.back.member.domain.Member; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.common.member.domain.Member; public interface FavoriteRepository extends JpaRepository { Optional findFavoriteByArticleAndMember(Article article, Member member); diff --git a/back/src/main/java/sellerlee/back/favorite/infra/FavoriteCreatedListener.java b/back/api/src/main/java/com/jikgorae/api/favorite/infra/FavoriteCreatedListener.java similarity index 76% rename from back/src/main/java/sellerlee/back/favorite/infra/FavoriteCreatedListener.java rename to back/api/src/main/java/com/jikgorae/api/favorite/infra/FavoriteCreatedListener.java index d9c58c46..8a0f47da 100644 --- a/back/src/main/java/sellerlee/back/favorite/infra/FavoriteCreatedListener.java +++ b/back/api/src/main/java/com/jikgorae/api/favorite/infra/FavoriteCreatedListener.java @@ -1,10 +1,10 @@ -package sellerlee.back.favorite.infra; +package com.jikgorae.api.favorite.infra; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; -import sellerlee.back.articlefavoritecount.application.ArticleFavoriteCountService; -import sellerlee.back.favorite.application.FavoriteCreatedEvent; +import com.jikgorae.api.articlefavoritecount.application.ArticleFavoriteCountService; +import com.jikgorae.api.favorite.application.FavoriteCreatedEvent; @Component public class FavoriteCreatedListener implements ApplicationListener { diff --git a/back/src/main/java/sellerlee/back/favorite/infra/FavoriteRemovedListener.java b/back/api/src/main/java/com/jikgorae/api/favorite/infra/FavoriteRemovedListener.java similarity index 76% rename from back/src/main/java/sellerlee/back/favorite/infra/FavoriteRemovedListener.java rename to back/api/src/main/java/com/jikgorae/api/favorite/infra/FavoriteRemovedListener.java index a4d1d930..a6b046f2 100644 --- a/back/src/main/java/sellerlee/back/favorite/infra/FavoriteRemovedListener.java +++ b/back/api/src/main/java/com/jikgorae/api/favorite/infra/FavoriteRemovedListener.java @@ -1,10 +1,10 @@ -package sellerlee.back.favorite.infra; +package com.jikgorae.api.favorite.infra; import org.springframework.context.ApplicationListener; import org.springframework.stereotype.Component; -import sellerlee.back.articlefavoritecount.application.ArticleFavoriteCountService; -import sellerlee.back.favorite.application.FavoriteRemovedEvent; +import com.jikgorae.api.articlefavoritecount.application.ArticleFavoriteCountService; +import com.jikgorae.api.favorite.application.FavoriteRemovedEvent; @Component public class FavoriteRemovedListener implements ApplicationListener { diff --git a/back/src/main/java/sellerlee/back/favorite/presentation/FavoriteController.java b/back/api/src/main/java/com/jikgorae/api/favorite/presentation/FavoriteController.java similarity index 71% rename from back/src/main/java/sellerlee/back/favorite/presentation/FavoriteController.java rename to back/api/src/main/java/com/jikgorae/api/favorite/presentation/FavoriteController.java index efab3318..48ab8a4a 100644 --- a/back/src/main/java/sellerlee/back/favorite/presentation/FavoriteController.java +++ b/back/api/src/main/java/com/jikgorae/api/favorite/presentation/FavoriteController.java @@ -1,7 +1,6 @@ -package sellerlee.back.favorite.presentation; +package com.jikgorae.api.favorite.presentation; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.favorite.presentation.FavoriteController.*; +import static com.jikgorae.api.favorite.presentation.FavoriteController.*; import java.net.URI; import java.util.List; @@ -14,16 +13,16 @@ import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import sellerlee.back.article.application.ArticleCardResponse; -import sellerlee.back.favorite.application.FavoriteRequest; -import sellerlee.back.favorite.application.FavoriteService; -import sellerlee.back.member.domain.Member; -import sellerlee.back.security.core.LoginMember; +import com.jikgorae.api.article.application.ArticleCardResponse; +import com.jikgorae.api.favorite.application.FavoriteRequest; +import com.jikgorae.api.favorite.application.FavoriteService; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.security.core.LoginMember; @RestController -@RequestMapping(API_URI + FAVORITE_URI) +@RequestMapping(FAVORITE_API_URI) public class FavoriteController { - public static final String FAVORITE_URI = "/favorites"; + public static final String FAVORITE_API_URI = "/api/favorites"; private final FavoriteService favoriteService; @@ -44,7 +43,7 @@ public ResponseEntity create(@RequestBody FavoriteRequest request, Long favoriteId = favoriteService.create(request, loginMember); return ResponseEntity - .created(URI.create(FAVORITE_URI + "/" + favoriteId)) + .created(URI.create(FAVORITE_API_URI + "/" + favoriteId)) .build(); } diff --git a/back/src/main/java/sellerlee/back/member/application/KakaoPropertiesRequest.java b/back/api/src/main/java/com/jikgorae/api/member/application/KakaoPropertiesRequest.java similarity index 86% rename from back/src/main/java/sellerlee/back/member/application/KakaoPropertiesRequest.java rename to back/api/src/main/java/com/jikgorae/api/member/application/KakaoPropertiesRequest.java index 74964023..f166fdee 100644 --- a/back/src/main/java/sellerlee/back/member/application/KakaoPropertiesRequest.java +++ b/back/api/src/main/java/com/jikgorae/api/member/application/KakaoPropertiesRequest.java @@ -1,6 +1,6 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; -import sellerlee.back.member.domain.Member; +import com.jikgorae.common.member.domain.Member; public class KakaoPropertiesRequest { private String nickname; diff --git a/back/src/main/java/sellerlee/back/member/application/KakaoService.java b/back/api/src/main/java/com/jikgorae/api/member/application/KakaoService.java similarity index 89% rename from back/src/main/java/sellerlee/back/member/application/KakaoService.java rename to back/api/src/main/java/com/jikgorae/api/member/application/KakaoService.java index 7bf4c5fe..98357d53 100644 --- a/back/src/main/java/sellerlee/back/member/application/KakaoService.java +++ b/back/api/src/main/java/com/jikgorae/api/member/application/KakaoService.java @@ -1,6 +1,6 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; -import static sellerlee.back.security.oauth2.provider.CustomOAuth2Provider.*; +import static com.jikgorae.api.security.oauth2.provider.CustomOAuth2Provider.*; import java.util.Arrays; @@ -20,9 +20,9 @@ import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; -import sellerlee.back.member.domain.Member; -import sellerlee.back.member.domain.RefreshTokenException; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.security.web.AuthorizationType; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.member.domain.RefreshTokenException; @Component public class KakaoService { @@ -70,8 +70,8 @@ private void refreshAccessToken(Member member) { multiValueMap.add("refresh_token", member.getKakaoRefreshToken()); multiValueMap.add("client_secret", ClientSecret); - ResponseEntity responseEntity = restTemplate.postForEntity( - TOKEN_URI, multiValueMap, kakaoTokenResponse.class); + ResponseEntity responseEntity = restTemplate.postForEntity( + TOKEN_URI, multiValueMap, KakaoTokenResponse.class); if (responseEntity.getStatusCode() == HttpStatus.OK) { updateToken(member, responseEntity); @@ -80,8 +80,8 @@ private void refreshAccessToken(Member member) { throw new RefreshTokenException("카카오 토큰 갱신 오류"); } - private void updateToken(Member member, ResponseEntity responseEntity) { - kakaoTokenResponse kakaoTokenResponse = responseEntity.getBody(); + private void updateToken(Member member, ResponseEntity responseEntity) { + KakaoTokenResponse kakaoTokenResponse = responseEntity.getBody(); if (isRefreshTokenNullOf(kakaoTokenResponse)) { member.updateToken(kakaoTokenResponse.getAccess_token()); return; @@ -90,7 +90,7 @@ private void updateToken(Member member, ResponseEntity respo kakaoTokenResponse.getRefresh_token()); } - private boolean isRefreshTokenNullOf(kakaoTokenResponse kakaoTokenResponse) { + private boolean isRefreshTokenNullOf(KakaoTokenResponse kakaoTokenResponse) { return kakaoTokenResponse.getRefresh_token() == null || kakaoTokenResponse.getRefresh_token().length() == 0; } diff --git a/back/src/main/java/sellerlee/back/member/application/kakaoTokenResponse.java b/back/api/src/main/java/com/jikgorae/api/member/application/KakaoTokenResponse.java similarity index 83% rename from back/src/main/java/sellerlee/back/member/application/kakaoTokenResponse.java rename to back/api/src/main/java/com/jikgorae/api/member/application/KakaoTokenResponse.java index a0120edd..00c9525e 100644 --- a/back/src/main/java/sellerlee/back/member/application/kakaoTokenResponse.java +++ b/back/api/src/main/java/com/jikgorae/api/member/application/KakaoTokenResponse.java @@ -1,16 +1,16 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; -public class kakaoTokenResponse { +public class KakaoTokenResponse { private String token_type; private String access_token; private String expires_in; private String refresh_token; private String refresh_token_expires_in; - private kakaoTokenResponse() { + private KakaoTokenResponse() { } - public kakaoTokenResponse(String token_type, String access_token, String expires_in, + public KakaoTokenResponse(String token_type, String access_token, String expires_in, String refresh_token, String refresh_token_expires_in) { this.token_type = token_type; this.access_token = access_token; diff --git a/back/src/main/java/sellerlee/back/member/application/LoginRequest.java b/back/api/src/main/java/com/jikgorae/api/member/application/LoginRequest.java similarity index 89% rename from back/src/main/java/sellerlee/back/member/application/LoginRequest.java rename to back/api/src/main/java/com/jikgorae/api/member/application/LoginRequest.java index 9fd40d00..5a4b449d 100644 --- a/back/src/main/java/sellerlee/back/member/application/LoginRequest.java +++ b/back/api/src/main/java/com/jikgorae/api/member/application/LoginRequest.java @@ -1,4 +1,4 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; public class LoginRequest { private String nickname; diff --git a/back/src/main/java/sellerlee/back/member/application/MemberRequest.java b/back/api/src/main/java/com/jikgorae/api/member/application/MemberRequest.java similarity index 93% rename from back/src/main/java/sellerlee/back/member/application/MemberRequest.java rename to back/api/src/main/java/com/jikgorae/api/member/application/MemberRequest.java index acf0f1bb..e3de6c92 100644 --- a/back/src/main/java/sellerlee/back/member/application/MemberRequest.java +++ b/back/api/src/main/java/com/jikgorae/api/member/application/MemberRequest.java @@ -1,4 +1,4 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; public class MemberRequest { private String nickname; diff --git a/back/src/main/java/sellerlee/back/member/application/MemberService.java b/back/api/src/main/java/com/jikgorae/api/member/application/MemberService.java similarity index 83% rename from back/src/main/java/sellerlee/back/member/application/MemberService.java rename to back/api/src/main/java/com/jikgorae/api/member/application/MemberService.java index 1c199435..5e5657bd 100644 --- a/back/src/main/java/sellerlee/back/member/application/MemberService.java +++ b/back/api/src/main/java/com/jikgorae/api/member/application/MemberService.java @@ -1,13 +1,13 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.fasterxml.jackson.core.JsonProcessingException; -import sellerlee.back.member.domain.IllegalJoinException; -import sellerlee.back.member.domain.Member; -import sellerlee.back.member.domain.MemberRepository; -import sellerlee.back.member.domain.State; +import com.jikgorae.common.member.domain.IllegalJoinException; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.member.domain.MemberRepository; +import com.jikgorae.common.member.domain.State; @Service public class MemberService { diff --git a/back/src/main/java/sellerlee/back/member/application/ProfileRequest.java b/back/api/src/main/java/com/jikgorae/api/member/application/ProfileRequest.java similarity index 89% rename from back/src/main/java/sellerlee/back/member/application/ProfileRequest.java rename to back/api/src/main/java/com/jikgorae/api/member/application/ProfileRequest.java index 761e123a..3916d378 100644 --- a/back/src/main/java/sellerlee/back/member/application/ProfileRequest.java +++ b/back/api/src/main/java/com/jikgorae/api/member/application/ProfileRequest.java @@ -1,4 +1,4 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; public class ProfileRequest { private String nickname; diff --git a/back/src/main/java/sellerlee/back/member/application/ProfileResponse.java b/back/api/src/main/java/com/jikgorae/api/member/application/ProfileResponse.java similarity index 90% rename from back/src/main/java/sellerlee/back/member/application/ProfileResponse.java rename to back/api/src/main/java/com/jikgorae/api/member/application/ProfileResponse.java index fe134e8a..8363cea1 100644 --- a/back/src/main/java/sellerlee/back/member/application/ProfileResponse.java +++ b/back/api/src/main/java/com/jikgorae/api/member/application/ProfileResponse.java @@ -1,6 +1,6 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; -import sellerlee.back.member.domain.Member; +import com.jikgorae.common.member.domain.Member; public class ProfileResponse { private String nickname; diff --git a/back/src/main/java/sellerlee/back/member/application/TokenResponse.java b/back/api/src/main/java/com/jikgorae/api/member/application/TokenResponse.java similarity index 91% rename from back/src/main/java/sellerlee/back/member/application/TokenResponse.java rename to back/api/src/main/java/com/jikgorae/api/member/application/TokenResponse.java index 06b90fcd..925e037f 100644 --- a/back/src/main/java/sellerlee/back/member/application/TokenResponse.java +++ b/back/api/src/main/java/com/jikgorae/api/member/application/TokenResponse.java @@ -1,6 +1,6 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.security.web.AuthorizationType; public class TokenResponse { private String accessToken; diff --git a/back/src/main/java/sellerlee/back/member/presentation/AuthAdviceController.java b/back/api/src/main/java/com/jikgorae/api/member/presentation/AuthAdviceController.java similarity index 80% rename from back/src/main/java/sellerlee/back/member/presentation/AuthAdviceController.java rename to back/api/src/main/java/com/jikgorae/api/member/presentation/AuthAdviceController.java index 42f69200..9d821578 100644 --- a/back/src/main/java/sellerlee/back/member/presentation/AuthAdviceController.java +++ b/back/api/src/main/java/com/jikgorae/api/member/presentation/AuthAdviceController.java @@ -1,11 +1,11 @@ -package sellerlee.back.member.presentation; +package com.jikgorae.api.member.presentation; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ControllerAdvice; import org.springframework.web.bind.annotation.ExceptionHandler; -import sellerlee.back.member.domain.IllegalJoinException; -import sellerlee.back.member.domain.IllegalLoginException; +import com.jikgorae.common.member.domain.IllegalJoinException; +import com.jikgorae.common.member.domain.IllegalLoginException; @ControllerAdvice public class AuthAdviceController { diff --git a/back/src/main/java/sellerlee/back/member/presentation/AuthController.java b/back/api/src/main/java/com/jikgorae/api/member/presentation/AuthController.java similarity index 68% rename from back/src/main/java/sellerlee/back/member/presentation/AuthController.java rename to back/api/src/main/java/com/jikgorae/api/member/presentation/AuthController.java index f785b928..6b21cebe 100644 --- a/back/src/main/java/sellerlee/back/member/presentation/AuthController.java +++ b/back/api/src/main/java/com/jikgorae/api/member/presentation/AuthController.java @@ -1,7 +1,6 @@ -package sellerlee.back.member.presentation; +package com.jikgorae.api.member.presentation; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.member.presentation.AuthController.*; +import static com.jikgorae.api.member.presentation.AuthController.*; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -9,12 +8,12 @@ import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; -import sellerlee.back.member.application.MemberService; +import com.jikgorae.api.member.application.MemberService; @RestController -@RequestMapping(API_URI + MEMBER_URI) +@RequestMapping(MEMBER_API_URI) public class AuthController { - public static final String MEMBER_URI = "/members"; + public static final String MEMBER_API_URI = "/api/members"; private final MemberService memberService; diff --git a/back/src/main/java/sellerlee/back/member/presentation/ProfileController.java b/back/api/src/main/java/com/jikgorae/api/member/presentation/ProfileController.java similarity index 66% rename from back/src/main/java/sellerlee/back/member/presentation/ProfileController.java rename to back/api/src/main/java/com/jikgorae/api/member/presentation/ProfileController.java index ebffcfba..0fdace44 100644 --- a/back/src/main/java/sellerlee/back/member/presentation/ProfileController.java +++ b/back/api/src/main/java/com/jikgorae/api/member/presentation/ProfileController.java @@ -1,6 +1,6 @@ -package sellerlee.back.member.presentation; +package com.jikgorae.api.member.presentation; -import static sellerlee.back.common.PageController.*; +import static com.jikgorae.api.member.presentation.ProfileController.*; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.GetMapping; @@ -10,16 +10,16 @@ import org.springframework.web.bind.annotation.RestController; import com.fasterxml.jackson.core.JsonProcessingException; -import sellerlee.back.member.application.MemberService; -import sellerlee.back.member.application.ProfileRequest; -import sellerlee.back.member.application.ProfileResponse; -import sellerlee.back.member.domain.Member; -import sellerlee.back.security.core.LoginMember; +import com.jikgorae.api.member.application.MemberService; +import com.jikgorae.api.member.application.ProfileRequest; +import com.jikgorae.api.member.application.ProfileResponse; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.security.core.LoginMember; @RestController -@RequestMapping(API_URI) +@RequestMapping(PROFILE_API_URI) public class ProfileController { - public static final String PROFILE_URI = "/me"; + public static final String PROFILE_API_URI = "/api/me"; private final MemberService memberService; @@ -27,12 +27,12 @@ public ProfileController(MemberService memberService) { this.memberService = memberService; } - @GetMapping(PROFILE_URI) + @GetMapping public ResponseEntity show(@LoginMember Member loginMember) { return ResponseEntity.ok(ProfileResponse.of(loginMember)); } - @PutMapping(PROFILE_URI) + @PutMapping public ResponseEntity update(@LoginMember Member loginMember, @RequestBody ProfileRequest request) throws JsonProcessingException { memberService.update(loginMember, request); diff --git a/back/src/main/java/sellerlee/back/security/config/AuthorizationConfig.java b/back/api/src/main/java/com/jikgorae/api/security/config/AuthorizationConfig.java similarity index 75% rename from back/src/main/java/sellerlee/back/security/config/AuthorizationConfig.java rename to back/api/src/main/java/com/jikgorae/api/security/config/AuthorizationConfig.java index dcf17754..54ad3462 100644 --- a/back/src/main/java/sellerlee/back/security/config/AuthorizationConfig.java +++ b/back/api/src/main/java/com/jikgorae/api/security/config/AuthorizationConfig.java @@ -1,7 +1,7 @@ -package sellerlee.back.security.config; +package com.jikgorae.api.security.config; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.member.presentation.AuthController.*; +import static com.jikgorae.api.common.PageController.*; +import static com.jikgorae.api.member.presentation.AuthController.*; import java.util.List; @@ -10,8 +10,9 @@ import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import sellerlee.back.security.web.LoginMemberMethodArgumentResolver; -import sellerlee.back.security.web.context.TokenSecurityInterceptor; +import com.jikgorae.api.security.web.context.TokenSecurityInterceptor; +import com.jikgorae.common.security.web.LoginMemberMethodArgumentResolver; + @Configuration public class AuthorizationConfig implements WebMvcConfigurer { @@ -34,6 +35,6 @@ public void addArgumentResolvers(List resolvers) public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(tokenSecurityInterceptor) .addPathPatterns("/**") - .excludePathPatterns(MEMBER_URI, "/", API_DOCS_URI, PRIVACY_URI); + .excludePathPatterns(MEMBER_API_URI, "/", API_DOCS_URI, PRIVACY_URI); } } diff --git a/back/src/main/java/sellerlee/back/security/config/OAuth2SuccessHandler.java b/back/api/src/main/java/com/jikgorae/api/security/config/OAuth2SuccessHandler.java similarity index 85% rename from back/src/main/java/sellerlee/back/security/config/OAuth2SuccessHandler.java rename to back/api/src/main/java/com/jikgorae/api/security/config/OAuth2SuccessHandler.java index 6f34367a..d1c4386d 100644 --- a/back/src/main/java/sellerlee/back/security/config/OAuth2SuccessHandler.java +++ b/back/api/src/main/java/com/jikgorae/api/security/config/OAuth2SuccessHandler.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.config; +package com.jikgorae.api.security.config; import java.io.IOException; @@ -13,11 +13,11 @@ import org.springframework.stereotype.Component; import com.fasterxml.jackson.databind.ObjectMapper; -import sellerlee.back.member.application.TokenResponse; -import sellerlee.back.member.domain.Member; -import sellerlee.back.member.domain.MemberRepository; -import sellerlee.back.security.oauth2.token.JwtTokenProvider; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.member.application.TokenResponse; +import com.jikgorae.api.security.oauth2.token.JwtTokenProvider; +import com.jikgorae.api.security.web.AuthorizationType; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.member.domain.MemberRepository; @Component public class OAuth2SuccessHandler implements AuthenticationSuccessHandler { diff --git a/back/src/main/java/sellerlee/back/security/config/SecurityConfig.java b/back/api/src/main/java/com/jikgorae/api/security/config/SecurityConfig.java similarity index 96% rename from back/src/main/java/sellerlee/back/security/config/SecurityConfig.java rename to back/api/src/main/java/com/jikgorae/api/security/config/SecurityConfig.java index 6d04ee05..eeaa3088 100644 --- a/back/src/main/java/sellerlee/back/security/config/SecurityConfig.java +++ b/back/api/src/main/java/com/jikgorae/api/security/config/SecurityConfig.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.config; +package com.jikgorae.api.security.config; import java.util.ArrayList; import java.util.List; @@ -19,7 +19,7 @@ import org.springframework.security.web.firewall.StrictHttpFirewall; import org.springframework.security.web.util.matcher.AntPathRequestMatcher; -import sellerlee.back.security.oauth2.provider.CustomOAuth2Provider; +import com.jikgorae.api.security.oauth2.provider.CustomOAuth2Provider; @Configuration @EnableWebSecurity diff --git a/back/src/main/java/sellerlee/back/security/oauth2/authentication/AuthorizationExtractor.java b/back/api/src/main/java/com/jikgorae/api/security/oauth2/authentication/AuthorizationExtractor.java similarity index 92% rename from back/src/main/java/sellerlee/back/security/oauth2/authentication/AuthorizationExtractor.java rename to back/api/src/main/java/com/jikgorae/api/security/oauth2/authentication/AuthorizationExtractor.java index 3afc93b8..34c0f2b1 100644 --- a/back/src/main/java/sellerlee/back/security/oauth2/authentication/AuthorizationExtractor.java +++ b/back/api/src/main/java/com/jikgorae/api/security/oauth2/authentication/AuthorizationExtractor.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.oauth2.authentication; +package com.jikgorae.api.security.oauth2.authentication; import java.util.Enumeration; @@ -6,7 +6,7 @@ import org.apache.logging.log4j.util.Strings; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.security.web.AuthorizationType; public class AuthorizationExtractor { public static final String AUTHORIZATION = "Authorization"; diff --git a/back/src/main/java/sellerlee/back/security/oauth2/provider/CustomOAuth2Provider.java b/back/api/src/main/java/com/jikgorae/api/security/oauth2/provider/CustomOAuth2Provider.java similarity index 97% rename from back/src/main/java/sellerlee/back/security/oauth2/provider/CustomOAuth2Provider.java rename to back/api/src/main/java/com/jikgorae/api/security/oauth2/provider/CustomOAuth2Provider.java index f375df26..ab9941d5 100644 --- a/back/src/main/java/sellerlee/back/security/oauth2/provider/CustomOAuth2Provider.java +++ b/back/api/src/main/java/com/jikgorae/api/security/oauth2/provider/CustomOAuth2Provider.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.oauth2.provider; +package com.jikgorae.api.security.oauth2.provider; import org.springframework.security.oauth2.client.registration.ClientRegistration; import org.springframework.security.oauth2.core.AuthorizationGrantType; diff --git a/back/src/main/java/sellerlee/back/security/oauth2/service/MyOAuth2AuthorizedClientService.java b/back/api/src/main/java/com/jikgorae/api/security/oauth2/service/MyOAuth2AuthorizedClientService.java similarity index 91% rename from back/src/main/java/sellerlee/back/security/oauth2/service/MyOAuth2AuthorizedClientService.java rename to back/api/src/main/java/com/jikgorae/api/security/oauth2/service/MyOAuth2AuthorizedClientService.java index 1e3ad583..d5e522f7 100644 --- a/back/src/main/java/sellerlee/back/security/oauth2/service/MyOAuth2AuthorizedClientService.java +++ b/back/api/src/main/java/com/jikgorae/api/security/oauth2/service/MyOAuth2AuthorizedClientService.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.oauth2.service; +package com.jikgorae.api.security.oauth2.service; import java.util.LinkedHashMap; @@ -10,9 +10,9 @@ import org.springframework.security.oauth2.core.user.OAuth2User; import org.springframework.stereotype.Service; -import sellerlee.back.member.domain.Member; -import sellerlee.back.member.domain.MemberRepository; -import sellerlee.back.member.domain.State; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.member.domain.MemberRepository; +import com.jikgorae.common.member.domain.State; @Service public class MyOAuth2AuthorizedClientService implements OAuth2AuthorizedClientService { diff --git a/back/src/main/java/sellerlee/back/security/oauth2/token/JwtTokenProvider.java b/back/api/src/main/java/com/jikgorae/api/security/oauth2/token/JwtTokenProvider.java similarity index 96% rename from back/src/main/java/sellerlee/back/security/oauth2/token/JwtTokenProvider.java rename to back/api/src/main/java/com/jikgorae/api/security/oauth2/token/JwtTokenProvider.java index 5ad1e7bd..daebae8e 100644 --- a/back/src/main/java/sellerlee/back/security/oauth2/token/JwtTokenProvider.java +++ b/back/api/src/main/java/com/jikgorae/api/security/oauth2/token/JwtTokenProvider.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.oauth2.token; +package com.jikgorae.api.security.oauth2.token; import java.util.Date; diff --git a/back/src/main/java/sellerlee/back/security/web/AuthorizationException.java b/back/api/src/main/java/com/jikgorae/api/security/web/AuthorizationException.java similarity index 83% rename from back/src/main/java/sellerlee/back/security/web/AuthorizationException.java rename to back/api/src/main/java/com/jikgorae/api/security/web/AuthorizationException.java index 512a1e83..45c9dd2e 100644 --- a/back/src/main/java/sellerlee/back/security/web/AuthorizationException.java +++ b/back/api/src/main/java/com/jikgorae/api/security/web/AuthorizationException.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.web; +package com.jikgorae.api.security.web; public class AuthorizationException extends RuntimeException { public AuthorizationException() { diff --git a/back/src/main/java/sellerlee/back/security/web/AuthorizationType.java b/back/api/src/main/java/com/jikgorae/api/security/web/AuthorizationType.java similarity index 78% rename from back/src/main/java/sellerlee/back/security/web/AuthorizationType.java rename to back/api/src/main/java/com/jikgorae/api/security/web/AuthorizationType.java index d860bd93..c0262462 100644 --- a/back/src/main/java/sellerlee/back/security/web/AuthorizationType.java +++ b/back/api/src/main/java/com/jikgorae/api/security/web/AuthorizationType.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.web; +package com.jikgorae.api.security.web; public enum AuthorizationType { BASIC, diff --git a/back/src/main/java/sellerlee/back/security/web/context/TokenSecurityInterceptor.java b/back/api/src/main/java/com/jikgorae/api/security/web/context/TokenSecurityInterceptor.java similarity index 74% rename from back/src/main/java/sellerlee/back/security/web/context/TokenSecurityInterceptor.java rename to back/api/src/main/java/com/jikgorae/api/security/web/context/TokenSecurityInterceptor.java index 9f3f677a..72d99335 100644 --- a/back/src/main/java/sellerlee/back/security/web/context/TokenSecurityInterceptor.java +++ b/back/api/src/main/java/com/jikgorae/api/security/web/context/TokenSecurityInterceptor.java @@ -1,8 +1,7 @@ -package sellerlee.back.security.web.context; +package com.jikgorae.api.security.web.context; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.member.presentation.AuthController.*; -import static sellerlee.back.security.web.LoginMemberMethodArgumentResolver.*; +import static com.jikgorae.api.member.presentation.AuthController.*; +import static com.jikgorae.common.security.web.LoginMemberMethodArgumentResolver.*; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -12,10 +11,10 @@ import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerInterceptor; -import sellerlee.back.security.oauth2.authentication.AuthorizationExtractor; -import sellerlee.back.security.oauth2.token.JwtTokenProvider; -import sellerlee.back.security.web.AuthenticationException; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor; +import com.jikgorae.api.security.oauth2.token.JwtTokenProvider; +import com.jikgorae.api.security.web.AuthorizationType; +import com.jikgorae.common.security.web.AuthenticationException; @Component public class TokenSecurityInterceptor implements HandlerInterceptor { @@ -31,7 +30,7 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons String credentials = AuthorizationExtractor.extract(request, AuthorizationType.BEARER); boolean isHTMLFile = request.getServletPath().contains("html"); boolean isJoinRequest = - HttpMethod.POST.matches(request.getMethod()) && (API_URI + MEMBER_URI).equals( + HttpMethod.POST.matches(request.getMethod()) && (MEMBER_API_URI).equals( request.getServletPath()); if (StringUtils.isBlank(credentials)) { diff --git a/back/src/main/java/sellerlee/back/trade/application/TradeService.java b/back/api/src/main/java/com/jikgorae/api/trade/application/TradeService.java similarity index 85% rename from back/src/main/java/sellerlee/back/trade/application/TradeService.java rename to back/api/src/main/java/com/jikgorae/api/trade/application/TradeService.java index f7e6c3a9..139ef700 100644 --- a/back/src/main/java/sellerlee/back/trade/application/TradeService.java +++ b/back/api/src/main/java/com/jikgorae/api/trade/application/TradeService.java @@ -1,8 +1,8 @@ -package sellerlee.back.trade.application; +package com.jikgorae.api.trade.application; import org.springframework.stereotype.Service; -import sellerlee.back.trade.domain.TradeRepository; +import com.jikgorae.api.trade.domain.TradeRepository; @Service public class TradeService { diff --git a/back/src/main/java/sellerlee/back/trade/domain/Trade.java b/back/api/src/main/java/com/jikgorae/api/trade/domain/Trade.java similarity index 86% rename from back/src/main/java/sellerlee/back/trade/domain/Trade.java rename to back/api/src/main/java/com/jikgorae/api/trade/domain/Trade.java index 0ffc7772..8aebce67 100644 --- a/back/src/main/java/sellerlee/back/trade/domain/Trade.java +++ b/back/api/src/main/java/com/jikgorae/api/trade/domain/Trade.java @@ -1,4 +1,4 @@ -package sellerlee.back.trade.domain; +package com.jikgorae.api.trade.domain; import javax.persistence.Column; import javax.persistence.Entity; @@ -9,9 +9,9 @@ import javax.persistence.ManyToOne; import javax.persistence.OneToOne; -import sellerlee.back.article.domain.Article; -import sellerlee.back.common.domain.BaseTimeEntity; -import sellerlee.back.member.domain.Member; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.common.BaseTimeEntity; +import com.jikgorae.common.member.domain.Member; @Entity public class Trade extends BaseTimeEntity { diff --git a/back/src/main/java/sellerlee/back/trade/domain/TradeRepository.java b/back/api/src/main/java/com/jikgorae/api/trade/domain/TradeRepository.java similarity index 70% rename from back/src/main/java/sellerlee/back/trade/domain/TradeRepository.java rename to back/api/src/main/java/com/jikgorae/api/trade/domain/TradeRepository.java index 38662194..389f1278 100644 --- a/back/src/main/java/sellerlee/back/trade/domain/TradeRepository.java +++ b/back/api/src/main/java/com/jikgorae/api/trade/domain/TradeRepository.java @@ -1,10 +1,10 @@ -package sellerlee.back.trade.domain; +package com.jikgorae.api.trade.domain; import java.util.List; import org.springframework.data.jpa.repository.JpaRepository; -import sellerlee.back.member.domain.Member; +import com.jikgorae.common.member.domain.Member; public interface TradeRepository extends JpaRepository { List findAllByBuyer(Member buyer); diff --git a/back/src/main/java/sellerlee/back/trade/presentation/TradeController.java b/back/api/src/main/java/com/jikgorae/api/trade/presentation/TradeController.java similarity index 82% rename from back/src/main/java/sellerlee/back/trade/presentation/TradeController.java rename to back/api/src/main/java/com/jikgorae/api/trade/presentation/TradeController.java index 814434a5..147c35e6 100644 --- a/back/src/main/java/sellerlee/back/trade/presentation/TradeController.java +++ b/back/api/src/main/java/com/jikgorae/api/trade/presentation/TradeController.java @@ -1,11 +1,11 @@ -package sellerlee.back.trade.presentation; +package com.jikgorae.api.trade.presentation; -import static sellerlee.back.trade.presentation.TradeController.*; +import static com.jikgorae.api.trade.presentation.TradeController.*; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; -import sellerlee.back.trade.application.TradeService; +import com.jikgorae.api.trade.application.TradeService; @RequestMapping(ORDER_URI) @RestController diff --git a/back/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/back/api/src/main/resources/META-INF/additional-spring-configuration-metadata.json similarity index 100% rename from back/src/main/resources/META-INF/additional-spring-configuration-metadata.json rename to back/api/src/main/resources/META-INF/additional-spring-configuration-metadata.json diff --git a/back/src/main/resources/application.yml b/back/api/src/main/resources/application.yml similarity index 100% rename from back/src/main/resources/application.yml rename to back/api/src/main/resources/application.yml diff --git a/back/src/main/resources/db/migration/V1__Init.sql b/back/api/src/main/resources/db/migration/V1__Init.sql similarity index 100% rename from back/src/main/resources/db/migration/V1__Init.sql rename to back/api/src/main/resources/db/migration/V1__Init.sql diff --git a/back/src/main/resources/db/migration/V2.1__Update_Article.sql b/back/api/src/main/resources/db/migration/V2.1__Update_Article.sql similarity index 100% rename from back/src/main/resources/db/migration/V2.1__Update_Article.sql rename to back/api/src/main/resources/db/migration/V2.1__Update_Article.sql diff --git a/back/src/main/resources/db/migration/V2.2__Create_Chat_Room.sql b/back/api/src/main/resources/db/migration/V2.2__Create_Chat_Room.sql similarity index 100% rename from back/src/main/resources/db/migration/V2.2__Create_Chat_Room.sql rename to back/api/src/main/resources/db/migration/V2.2__Create_Chat_Room.sql diff --git a/back/src/main/resources/db/migration/V2.3__Update_Member.sql b/back/api/src/main/resources/db/migration/V2.3__Update_Member.sql similarity index 100% rename from back/src/main/resources/db/migration/V2.3__Update_Member.sql rename to back/api/src/main/resources/db/migration/V2.3__Update_Member.sql diff --git a/back/src/main/resources/db/migration/V3.1__Create_Article_Favorite_Count.sql b/back/api/src/main/resources/db/migration/V3.1__Create_Article_Favorite_Count.sql similarity index 100% rename from back/src/main/resources/db/migration/V3.1__Create_Article_Favorite_Count.sql rename to back/api/src/main/resources/db/migration/V3.1__Create_Article_Favorite_Count.sql diff --git a/back/src/main/resources/db/migration/V4.1__Create_Trade.sql b/back/api/src/main/resources/db/migration/V4.1__Create_Trade.sql similarity index 100% rename from back/src/main/resources/db/migration/V4.1__Create_Trade.sql rename to back/api/src/main/resources/db/migration/V4.1__Create_Trade.sql diff --git a/back/src/main/resources/db/migration/V5.1__Create_Evaluation.sql b/back/api/src/main/resources/db/migration/V5.1__Create_Evaluation.sql similarity index 100% rename from back/src/main/resources/db/migration/V5.1__Create_Evaluation.sql rename to back/api/src/main/resources/db/migration/V5.1__Create_Evaluation.sql diff --git a/back/src/main/resources/db/migration/V6.1__Update_Member.sql b/back/api/src/main/resources/db/migration/V6.1__Update_Member.sql similarity index 100% rename from back/src/main/resources/db/migration/V6.1__Update_Member.sql rename to back/api/src/main/resources/db/migration/V6.1__Update_Member.sql diff --git a/back/src/main/resources/db/migration/V7.1__Update_Member.sql b/back/api/src/main/resources/db/migration/V7.1__Update_Member.sql similarity index 100% rename from back/src/main/resources/db/migration/V7.1__Update_Member.sql rename to back/api/src/main/resources/db/migration/V7.1__Update_Member.sql diff --git a/back/src/main/resources/logback-spring.xml b/back/api/src/main/resources/logback-spring.xml similarity index 100% rename from back/src/main/resources/logback-spring.xml rename to back/api/src/main/resources/logback-spring.xml diff --git a/back/src/main/resources/static/docs.html b/back/api/src/main/resources/static/docs.html similarity index 100% rename from back/src/main/resources/static/docs.html rename to back/api/src/main/resources/static/docs.html diff --git a/back/src/main/resources/static/docs_files/MathJax.js b/back/api/src/main/resources/static/docs_files/MathJax.js similarity index 100% rename from back/src/main/resources/static/docs_files/MathJax.js rename to back/api/src/main/resources/static/docs_files/MathJax.js diff --git a/back/src/main/resources/static/docs_files/dejavu.css b/back/api/src/main/resources/static/docs_files/dejavu.css similarity index 100% rename from back/src/main/resources/static/docs_files/dejavu.css rename to back/api/src/main/resources/static/docs_files/dejavu.css diff --git a/back/src/main/resources/static/docs_files/droidsansmono.css b/back/api/src/main/resources/static/docs_files/droidsansmono.css similarity index 100% rename from back/src/main/resources/static/docs_files/droidsansmono.css rename to back/api/src/main/resources/static/docs_files/droidsansmono.css diff --git a/back/src/main/resources/static/docs_files/font-awesome.min.css b/back/api/src/main/resources/static/docs_files/font-awesome.min.css similarity index 100% rename from back/src/main/resources/static/docs_files/font-awesome.min.css rename to back/api/src/main/resources/static/docs_files/font-awesome.min.css diff --git a/back/src/main/resources/static/docs_files/googlefonts.css b/back/api/src/main/resources/static/docs_files/googlefonts.css similarity index 100% rename from back/src/main/resources/static/docs_files/googlefonts.css rename to back/api/src/main/resources/static/docs_files/googlefonts.css diff --git a/back/src/main/resources/static/docs_files/pickSourceLine.js b/back/api/src/main/resources/static/docs_files/pickSourceLine.js similarity index 100% rename from back/src/main/resources/static/docs_files/pickSourceLine.js rename to back/api/src/main/resources/static/docs_files/pickSourceLine.js diff --git a/back/src/main/resources/static/docs_files/processLinks.js b/back/api/src/main/resources/static/docs_files/processLinks.js similarity index 100% rename from back/src/main/resources/static/docs_files/processLinks.js rename to back/api/src/main/resources/static/docs_files/processLinks.js diff --git a/back/src/main/resources/static/docs_files/scrollToElement.js b/back/api/src/main/resources/static/docs_files/scrollToElement.js similarity index 100% rename from back/src/main/resources/static/docs_files/scrollToElement.js rename to back/api/src/main/resources/static/docs_files/scrollToElement.js diff --git a/back/src/main/resources/static/images/qrcode.png b/back/api/src/main/resources/static/images/qrcode.png similarity index 100% rename from back/src/main/resources/static/images/qrcode.png rename to back/api/src/main/resources/static/images/qrcode.png diff --git a/back/src/main/resources/static/index.html b/back/api/src/main/resources/static/index.html similarity index 100% rename from back/src/main/resources/static/index.html rename to back/api/src/main/resources/static/index.html diff --git a/back/src/main/resources/static/privacy.html b/back/api/src/main/resources/static/privacy.html similarity index 99% rename from back/src/main/resources/static/privacy.html rename to back/api/src/main/resources/static/privacy.html index 6b977fda..a9aeca5f 100644 --- a/back/src/main/resources/static/privacy.html +++ b/back/api/src/main/resources/static/privacy.html @@ -1,18 +1,18 @@ - - - - - - - - - - -개인정보처리방침 - - -

<셀러리컴퍼니>('sellerlee.tk'이하 '직고래')은(는) 개인정보보호법에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다.

<셀러리컴퍼니>('직고래') 은(는) 회사는 개인정보처리방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여 공지할 것입니다.

○ 본 방침은부터 2020821일부터 시행됩니다.


1. 개인정보의 처리 목적 <셀러리컴퍼니>('sellerlee.tk'이하 '직고래')은(는) 개인정보를 다음의 목적을 위해 처리합니다. 처리한 개인정보는 다음의 목적이외의 용도로는 사용되지 않으며 이용 목적이 변경될 시에는 사전동의를 구할 예정입니다.

    가. 홈페이지 회원가입 및 관리

    회원 가입의사 확인, 회원제 서비스 제공에 따른 본인 식별·인증, 회원자격 유지·관리, 각종 고지·통지 등을 목적으로 개인정보를 처리합니다.


    나. 재화 또는 서비스 제공

    서비스 제공, 콘텐츠 제공, 맞춤 서비스 제공 등을 목적으로 개인정보를 처리합니다.


2. 개인정보 파일 현황
('sellerlee.tk'이하 '직고래')가 개인정보 보호법 제32조에 따라 등록․공개하는 개인정보파일의 처리목적은 다음과 같습니다.

  • 1. 개인정보 파일명 : 회원
  • 개인정보 항목 : 비밀번호, 로그인ID
  • 수집방법 : 홈페이지
  • 보유근거 : 이미 가입된 회원인지 판별하기 위함
  • 보유기간 : 3년
  • 관련법령 : 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년

※ 기타('sellerlee.tk'이하 '직고래')의 개인정보파일 등록사항 공개는 개인정보보호위원회 개인정보보호 종합지원 포털(www.privacy.go.kr) → 개인정보민원 → 개인정보열람등 요구 → 개인정보파일 목록검색 메뉴를 활용해주시기 바랍니다.



3. 개인정보의 처리 및 보유 기간

<셀러리컴퍼니>('직고래')은(는) 법령에 따른 개인정보 보유·이용기간 또는 정보주체로부터 개인정보를 수집시에 동의 받은 개인정보 보유,이용기간 내에서 개인정보를 처리,보유합니다.

② 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다.

  • 1.<홈페이지 회원가입 및 관리>
  • <홈페이지 회원가입 및 관리>와 관련한 개인정보는 수집.이용에 관한 동의일로부터<3년>까지 위 이용목적을 위하여 보유.이용됩니다.
  • 보유근거 : 이미 가입된 회원인지 판별하기 위함
  • 관련법령 : 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년
  • 예외사유 :
- -

4. 정보주체와 법정대리인의 권리·의무 및 그 행사방법 이용자는 개인정보주체로써 다음과 같은 권리를 행사할 수 있습니다.

① 정보주체는 셀러리컴퍼니에 대해 언제든지 개인정보 열람,정정,삭제,처리정지 요구 등의 권리를 행사할 수 있습니다.

② 제1항에 따른 권리 행사는셀러리컴퍼니에 대해 개인정보 보호법 시행령 제41조제1항에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 셀러리컴퍼니은(는) 이에 대해 지체 없이 조치하겠습니다.

③ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다. 이 경우 개인정보 보호법 시행규칙 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.

④ 개인정보 열람 및 처리정지 요구는 개인정보보호법 제35조 제5항, 제37조 제2항에 의하여 정보주체의 권리가 제한 될 수 있습니다.

⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에서 그 개인정보가 수집 대상으로 명시되어 있는 경우에는 그 삭제를 요구할 수 없습니다.

⑥ 셀러리컴퍼니은(는) 정보주체 권리에 따른 열람의 요구, 정정·삭제의 요구, 처리정지의 요구 시 열람 등 요구를 한 자가 본인이거나 정당한 대리인인지를 확인합니다.



5. 처리하는 개인정보의 항목 작성

<셀러리컴퍼니>('sellerlee.tk'이하 '직고래')은(는) 다음의 개인정보 항목을 처리하고 있습니다.

  • 1<홈페이지 회원가입 및 관리>
  • 필수항목 : 비밀번호, 로그인ID
  • - 선택항목 :


6. 개인정보의 파기<셀러리컴퍼니>('직고래')은(는) 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다.

-파기절차
이용자가 입력한 정보는 목적 달성 후 별도의 DB에 옮겨져(종이의 경우 별도의 서류) 내부 방침 및 기타 관련 법령에 따라 일정기간 저장된 후 혹은 즉시 파기됩니다. 이 때, DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 다른 목적으로 이용되지 않습니다.

-파기기한
이용자의 개인정보는 개인정보의 보유기간이 경과된 경우에는 보유기간의 종료일로부터 5일 이내에, 개인정보의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보가 불필요하게 되었을 때에는 개인정보의 처리가 불필요한 것으로 인정되는 날로부터 5일 이내에 그 개인정보를 파기합니다.

-파기방법

전자적 파일 형태의 정보는 기록을 재생할 수 없는 기술적 방법을 사용합니다



7. 개인정보 자동 수집 장치의 설치•운영 및 거부에 관한 사항

셀러리컴퍼니 은 정보주체의 이용정보를 저장하고 수시로 불러오는 ‘쿠키’를 사용하지 않습니다.

8. 개인정보 보호책임자 작성

셀러리컴퍼니(‘sellerlee.tk’이하 ‘직고래) 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.

  • ▶ 개인정보 보호책임자
  • 성명 :셀러리
  • 직책 :팀
  • 직급 :팀
  • 연락처 :01074771488, sellerleeco@gmail.com,

※ 개인정보 보호 담당부서로 연결됩니다.

  • ▶ 개인정보 보호 담당부서
  • 부서명 :
  • 담당자 :
  • 연락처 :, ,

② 정보주체께서는 셀러리컴퍼니(‘sellerlee.tk’이하 ‘직고래) 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. 셀러리컴퍼니(‘sellerlee.tk’이하 ‘직고래) 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.

9. 개인정보 처리방침 변경

①이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할 것입니다.



10. 개인정보의 안전성 확보 조치 <셀러리컴퍼니>('직고래')은(는) 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다.

1. 정기적인 자체 감사 실시
개인정보 취급 관련 안정성 확보를 위해 정기적(분기 1회)으로 자체 감사를 실시하고 있습니다.

2. 개인정보 취급 직원의 최소화 및 교육
개인정보를 취급하는 직원을 지정하고 담당자에 한정시켜 최소화 하여 개인정보를 관리하는 대책을 시행하고 있습니다.

3. 내부관리계획의 수립 및 시행
개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.

4. 해킹 등에 대비한 기술적 대책
<셀러리컴퍼니>('직고래')은 해킹이나 컴퓨터 바이러스 등에 의한 개인정보 유출 및 훼손을 막기 위하여 보안프로그램을 설치하고 주기적인 갱신·점검을 하며 외부로부터 접근이 통제된 구역에 시스템을 설치하고 기술적/물리적으로 감시 및 차단하고 있습니다.

5. 개인정보의 암호화
이용자의 개인정보는 비밀번호는 암호화 되어 저장 및 관리되고 있어, 본인만이 알 수 있으며 중요한 데이터는 파일 및 전송 데이터를 암호화 하거나 파일 잠금 기능을 사용하는 등의 별도 보안기능을 사용하고 있습니다.

6. 접속기록의 보관 및 위변조 방지
개인정보처리시스템에 접속한 기록을 최소 6개월 이상 보관, 관리하고 있으며, 접속 기록이 위변조 및 도난, 분실되지 않도록 보안기능 사용하고 있습니다.

7. 개인정보에 대한 접근 제한
개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.

8. 문서보안을 위한 잠금장치 사용
개인정보가 포함된 서류, 보조저장매체 등을 잠금장치가 있는 안전한 장소에 보관하고 있습니다.

9. 비인가자에 대한 출입 통제
개인정보를 보관하고 있는 물리적 보관 장소를 별도로 두고 이에 대해 출입통제 절차를 수립, 운영하고 있습니다.

- - + + + + + + + + + + +개인정보처리방침 + + +

<셀러리컴퍼니>('sellerlee.tk'이하 '직고래')은(는) 개인정보보호법에 따라 이용자의 개인정보 보호 및 권익을 보호하고 개인정보와 관련한 이용자의 고충을 원활하게 처리할 수 있도록 다음과 같은 처리방침을 두고 있습니다.

<셀러리컴퍼니>('직고래') 은(는) 회사는 개인정보처리방침을 개정하는 경우 웹사이트 공지사항(또는 개별공지)을 통하여 공지할 것입니다.

○ 본 방침은부터 2020821일부터 시행됩니다.


1. 개인정보의 처리 목적 <셀러리컴퍼니>('sellerlee.tk'이하 '직고래')은(는) 개인정보를 다음의 목적을 위해 처리합니다. 처리한 개인정보는 다음의 목적이외의 용도로는 사용되지 않으며 이용 목적이 변경될 시에는 사전동의를 구할 예정입니다.

    가. 홈페이지 회원가입 및 관리

    회원 가입의사 확인, 회원제 서비스 제공에 따른 본인 식별·인증, 회원자격 유지·관리, 각종 고지·통지 등을 목적으로 개인정보를 처리합니다.


    나. 재화 또는 서비스 제공

    서비스 제공, 콘텐츠 제공, 맞춤 서비스 제공 등을 목적으로 개인정보를 처리합니다.


2. 개인정보 파일 현황
('sellerlee.tk'이하 '직고래')가 개인정보 보호법 제32조에 따라 등록․공개하는 개인정보파일의 처리목적은 다음과 같습니다.

  • 1. 개인정보 파일명 : 회원
  • 개인정보 항목 : 비밀번호, 로그인ID
  • 수집방법 : 홈페이지
  • 보유근거 : 이미 가입된 회원인지 판별하기 위함
  • 보유기간 : 3년
  • 관련법령 : 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년

※ 기타('sellerlee.tk'이하 '직고래')의 개인정보파일 등록사항 공개는 개인정보보호위원회 개인정보보호 종합지원 포털(www.privacy.go.kr) → 개인정보민원 → 개인정보열람등 요구 → 개인정보파일 목록검색 메뉴를 활용해주시기 바랍니다.



3. 개인정보의 처리 및 보유 기간

<셀러리컴퍼니>('직고래')은(는) 법령에 따른 개인정보 보유·이용기간 또는 정보주체로부터 개인정보를 수집시에 동의 받은 개인정보 보유,이용기간 내에서 개인정보를 처리,보유합니다.

② 각각의 개인정보 처리 및 보유 기간은 다음과 같습니다.

  • 1.<홈페이지 회원가입 및 관리>
  • <홈페이지 회원가입 및 관리>와 관련한 개인정보는 수집.이용에 관한 동의일로부터<3년>까지 위 이용목적을 위하여 보유.이용됩니다.
  • 보유근거 : 이미 가입된 회원인지 판별하기 위함
  • 관련법령 : 신용정보의 수집/처리 및 이용 등에 관한 기록 : 3년
  • 예외사유 :
+ +

4. 정보주체와 법정대리인의 권리·의무 및 그 행사방법 이용자는 개인정보주체로써 다음과 같은 권리를 행사할 수 있습니다.

① 정보주체는 셀러리컴퍼니에 대해 언제든지 개인정보 열람,정정,삭제,처리정지 요구 등의 권리를 행사할 수 있습니다.

② 제1항에 따른 권리 행사는셀러리컴퍼니에 대해 개인정보 보호법 시행령 제41조제1항에 따라 서면, 전자우편, 모사전송(FAX) 등을 통하여 하실 수 있으며 셀러리컴퍼니은(는) 이에 대해 지체 없이 조치하겠습니다.

③ 제1항에 따른 권리 행사는 정보주체의 법정대리인이나 위임을 받은 자 등 대리인을 통하여 하실 수 있습니다. 이 경우 개인정보 보호법 시행규칙 별지 제11호 서식에 따른 위임장을 제출하셔야 합니다.

④ 개인정보 열람 및 처리정지 요구는 개인정보보호법 제35조 제5항, 제37조 제2항에 의하여 정보주체의 권리가 제한 될 수 있습니다.

⑤ 개인정보의 정정 및 삭제 요구는 다른 법령에서 그 개인정보가 수집 대상으로 명시되어 있는 경우에는 그 삭제를 요구할 수 없습니다.

⑥ 셀러리컴퍼니은(는) 정보주체 권리에 따른 열람의 요구, 정정·삭제의 요구, 처리정지의 요구 시 열람 등 요구를 한 자가 본인이거나 정당한 대리인인지를 확인합니다.



5. 처리하는 개인정보의 항목 작성

<셀러리컴퍼니>('sellerlee.tk'이하 '직고래')은(는) 다음의 개인정보 항목을 처리하고 있습니다.

  • 1<홈페이지 회원가입 및 관리>
  • 필수항목 : 비밀번호, 로그인ID
  • - 선택항목 :


6. 개인정보의 파기<셀러리컴퍼니>('직고래')은(는) 원칙적으로 개인정보 처리목적이 달성된 경우에는 지체없이 해당 개인정보를 파기합니다. 파기의 절차, 기한 및 방법은 다음과 같습니다.

-파기절차
이용자가 입력한 정보는 목적 달성 후 별도의 DB에 옮겨져(종이의 경우 별도의 서류) 내부 방침 및 기타 관련 법령에 따라 일정기간 저장된 후 혹은 즉시 파기됩니다. 이 때, DB로 옮겨진 개인정보는 법률에 의한 경우가 아니고서는 다른 목적으로 이용되지 않습니다.

-파기기한
이용자의 개인정보는 개인정보의 보유기간이 경과된 경우에는 보유기간의 종료일로부터 5일 이내에, 개인정보의 처리 목적 달성, 해당 서비스의 폐지, 사업의 종료 등 그 개인정보가 불필요하게 되었을 때에는 개인정보의 처리가 불필요한 것으로 인정되는 날로부터 5일 이내에 그 개인정보를 파기합니다.

-파기방법

전자적 파일 형태의 정보는 기록을 재생할 수 없는 기술적 방법을 사용합니다



7. 개인정보 자동 수집 장치의 설치•운영 및 거부에 관한 사항

셀러리컴퍼니 은 정보주체의 이용정보를 저장하고 수시로 불러오는 ‘쿠키’를 사용하지 않습니다.

8. 개인정보 보호책임자 작성

셀러리컴퍼니(‘sellerlee.tk’이하 ‘직고래) 은(는) 개인정보 처리에 관한 업무를 총괄해서 책임지고, 개인정보 처리와 관련한 정보주체의 불만처리 및 피해구제 등을 위하여 아래와 같이 개인정보 보호책임자를 지정하고 있습니다.

  • ▶ 개인정보 보호책임자
  • 성명 :셀러리
  • 직책 :팀
  • 직급 :팀
  • 연락처 :01074771488, sellerleeco@gmail.com,

※ 개인정보 보호 담당부서로 연결됩니다.

  • ▶ 개인정보 보호 담당부서
  • 부서명 :
  • 담당자 :
  • 연락처 :, ,

② 정보주체께서는 셀러리컴퍼니(‘sellerlee.tk’이하 ‘직고래) 의 서비스(또는 사업)을 이용하시면서 발생한 모든 개인정보 보호 관련 문의, 불만처리, 피해구제 등에 관한 사항을 개인정보 보호책임자 및 담당부서로 문의하실 수 있습니다. 셀러리컴퍼니(‘sellerlee.tk’이하 ‘직고래) 은(는) 정보주체의 문의에 대해 지체 없이 답변 및 처리해드릴 것입니다.

9. 개인정보 처리방침 변경

①이 개인정보처리방침은 시행일로부터 적용되며, 법령 및 방침에 따른 변경내용의 추가, 삭제 및 정정이 있는 경우에는 변경사항의 시행 7일 전부터 공지사항을 통하여 고지할 것입니다.



10. 개인정보의 안전성 확보 조치 <셀러리컴퍼니>('직고래')은(는) 개인정보보호법 제29조에 따라 다음과 같이 안전성 확보에 필요한 기술적/관리적 및 물리적 조치를 하고 있습니다.

1. 정기적인 자체 감사 실시
개인정보 취급 관련 안정성 확보를 위해 정기적(분기 1회)으로 자체 감사를 실시하고 있습니다.

2. 개인정보 취급 직원의 최소화 및 교육
개인정보를 취급하는 직원을 지정하고 담당자에 한정시켜 최소화 하여 개인정보를 관리하는 대책을 시행하고 있습니다.

3. 내부관리계획의 수립 및 시행
개인정보의 안전한 처리를 위하여 내부관리계획을 수립하고 시행하고 있습니다.

4. 해킹 등에 대비한 기술적 대책
<셀러리컴퍼니>('직고래')은 해킹이나 컴퓨터 바이러스 등에 의한 개인정보 유출 및 훼손을 막기 위하여 보안프로그램을 설치하고 주기적인 갱신·점검을 하며 외부로부터 접근이 통제된 구역에 시스템을 설치하고 기술적/물리적으로 감시 및 차단하고 있습니다.

5. 개인정보의 암호화
이용자의 개인정보는 비밀번호는 암호화 되어 저장 및 관리되고 있어, 본인만이 알 수 있으며 중요한 데이터는 파일 및 전송 데이터를 암호화 하거나 파일 잠금 기능을 사용하는 등의 별도 보안기능을 사용하고 있습니다.

6. 접속기록의 보관 및 위변조 방지
개인정보처리시스템에 접속한 기록을 최소 6개월 이상 보관, 관리하고 있으며, 접속 기록이 위변조 및 도난, 분실되지 않도록 보안기능 사용하고 있습니다.

7. 개인정보에 대한 접근 제한
개인정보를 처리하는 데이터베이스시스템에 대한 접근권한의 부여,변경,말소를 통하여 개인정보에 대한 접근통제를 위하여 필요한 조치를 하고 있으며 침입차단시스템을 이용하여 외부로부터의 무단 접근을 통제하고 있습니다.

8. 문서보안을 위한 잠금장치 사용
개인정보가 포함된 서류, 보조저장매체 등을 잠금장치가 있는 안전한 장소에 보관하고 있습니다.

9. 비인가자에 대한 출입 통제
개인정보를 보관하고 있는 물리적 보관 장소를 별도로 두고 이에 대해 출입통제 절차를 수립, 운영하고 있습니다.

+ + diff --git a/back/src/test/java/sellerlee/back/AcceptanceTest.java b/back/api/src/test/java/com/jikgorae/api/AcceptanceTest.java similarity index 83% rename from back/src/test/java/sellerlee/back/AcceptanceTest.java rename to back/api/src/test/java/com/jikgorae/api/AcceptanceTest.java index 8413dade..3db0166e 100644 --- a/back/src/test/java/sellerlee/back/AcceptanceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/AcceptanceTest.java @@ -1,13 +1,10 @@ -package sellerlee.back; +package com.jikgorae.api; +import static com.jikgorae.api.fixture.ArticleFixture.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; import static org.springframework.security.test.web.servlet.setup.SecurityMockMvcConfigurers.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.article.presentation.ArticleController.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; import org.junit.jupiter.api.BeforeEach; import org.springframework.beans.factory.annotation.Autowired; @@ -16,22 +13,24 @@ import org.springframework.test.context.jdbc.Sql; import org.springframework.test.web.servlet.MockMvc; import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import org.springframework.test.web.servlet.setup.MockMvcBuilders; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.filter.CharacterEncodingFilter; import com.fasterxml.jackson.databind.ObjectMapper; -import sellerlee.back.member.application.TokenResponse; -import sellerlee.back.member.domain.Member; -import sellerlee.back.member.domain.MemberRepository; -import sellerlee.back.member.domain.State; -import sellerlee.back.security.oauth2.token.JwtTokenProvider; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.article.presentation.ArticleController; +import com.jikgorae.api.member.application.TokenResponse; +import com.jikgorae.api.security.oauth2.token.JwtTokenProvider; +import com.jikgorae.api.security.web.AuthorizationType; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.member.domain.MemberRepository; +import com.jikgorae.common.member.domain.State; @Sql("/truncate.sql") @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT) public class AcceptanceTest { - private static final int ID_INDEX_OF_LOCATION = 2; + private static final int ID_INDEX_OF_LOCATION = 3; private static final String DELIMITER = "/"; @Autowired @@ -76,7 +75,7 @@ protected String createArticle(TokenResponse token) throws Exception { String request = objectMapper.writeValueAsString(ARTICLE_REQUEST); MvcResult mvcResult = mockMvc.perform( - post(API_URI + ARTICLE_URI) + MockMvcRequestBuilders.post(ArticleController.ARTICLE_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .accept(MediaType.APPLICATION_JSON) diff --git a/back/src/test/java/sellerlee/back/ControllerTest.java b/back/api/src/test/java/com/jikgorae/api/ControllerTest.java similarity index 81% rename from back/src/test/java/sellerlee/back/ControllerTest.java rename to back/api/src/test/java/com/jikgorae/api/ControllerTest.java index 92a6b2d8..22b89c60 100644 --- a/back/src/test/java/sellerlee/back/ControllerTest.java +++ b/back/api/src/test/java/com/jikgorae/api/ControllerTest.java @@ -1,9 +1,10 @@ -package sellerlee.back; +package com.jikgorae.api; +import static com.jikgorae.api.fixture.MemberFixture.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; -import static sellerlee.back.fixture.MemberFixture.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.extension.ExtendWith; @@ -16,11 +17,11 @@ import org.springframework.web.filter.CharacterEncodingFilter; import com.fasterxml.jackson.databind.ObjectMapper; -import sellerlee.back.member.domain.MemberRepository; -import sellerlee.back.security.config.OAuth2SuccessHandler; -import sellerlee.back.security.oauth2.token.JwtTokenProvider; -import sellerlee.back.security.web.LoginMemberMethodArgumentResolver; -import sellerlee.back.security.web.context.TokenSecurityInterceptor; +import com.jikgorae.api.security.config.OAuth2SuccessHandler; +import com.jikgorae.api.security.oauth2.token.JwtTokenProvider; +import com.jikgorae.api.security.web.context.TokenSecurityInterceptor; +import com.jikgorae.common.member.domain.MemberRepository; +import com.jikgorae.common.security.web.LoginMemberMethodArgumentResolver; @ExtendWith(RestDocumentationExtension.class) public class ControllerTest { diff --git a/back/src/test/java/sellerlee/back/article/acceptance/ArticleAcceptanceTest.java b/back/api/src/test/java/com/jikgorae/api/article/acceptance/ArticleAcceptanceTest.java similarity index 89% rename from back/src/test/java/sellerlee/back/article/acceptance/ArticleAcceptanceTest.java rename to back/api/src/test/java/com/jikgorae/api/article/acceptance/ArticleAcceptanceTest.java index a0f2e015..5b35054b 100644 --- a/back/src/test/java/sellerlee/back/article/acceptance/ArticleAcceptanceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/article/acceptance/ArticleAcceptanceTest.java @@ -1,15 +1,13 @@ -package sellerlee.back.article.acceptance; +package com.jikgorae.api.article.acceptance; +import static com.jikgorae.api.fixture.ArticleFixture.*; +import static com.jikgorae.api.fixture.MemberFixture.*; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.DynamicTest.*; +import static org.springframework.http.HttpHeaders.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.article.presentation.ArticleController.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; import java.util.List; import java.util.stream.Stream; @@ -20,14 +18,16 @@ import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import sellerlee.back.AcceptanceTest; -import sellerlee.back.article.application.ArticleCardResponse; -import sellerlee.back.article.application.ArticleResponse; -import sellerlee.back.article.application.FeedResponse; -import sellerlee.back.article.application.TradeStateRequest; -import sellerlee.back.member.application.TokenResponse; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.AcceptanceTest; +import com.jikgorae.api.article.application.ArticleCardResponse; +import com.jikgorae.api.article.application.ArticleResponse; +import com.jikgorae.api.article.application.FeedResponse; +import com.jikgorae.api.article.application.TradeStateRequest; +import com.jikgorae.api.article.presentation.ArticleController; +import com.jikgorae.api.member.application.TokenResponse; +import com.jikgorae.api.security.web.AuthorizationType; public class ArticleAcceptanceTest extends AcceptanceTest { public static final Long LAST_ARTICLE_ID = 4L; @@ -105,7 +105,7 @@ Stream manageArticle() throws Exception { private List showPage(Long articleId) throws Exception { MvcResult mvcResult = mockMvc.perform( - get(API_URI + ARTICLE_URI) + MockMvcRequestBuilders.get(ArticleController.ARTICLE_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .param("lastArticleId", String.valueOf(articleId)) @@ -135,7 +135,7 @@ private List showPageByCategory(Long articleId) throws Exception { MvcResult mvcResult = mockMvc.perform( - get(API_URI + ARTICLE_URI) + MockMvcRequestBuilders.get(ArticleController.ARTICLE_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .param("lastArticleId", String.valueOf(articleId)) @@ -167,7 +167,7 @@ private List showPageByCategory(Long articleId) throws private ArticleResponse showArticle(Long articleId) throws Exception { MvcResult mvcResult = mockMvc.perform( - get(API_URI + ARTICLE_URI + "/" + articleId) + get(ArticleController.ARTICLE_API_URI + "/" + articleId) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken()))) .andDo(print()) @@ -195,7 +195,7 @@ private ArticleResponse showArticle(Long articleId) throws Exception { private void deleteArticle(Long articleId) throws Exception { mockMvc.perform( - delete(API_URI + ARTICLE_URI + "/" + articleId) + delete(ArticleController.ARTICLE_API_URI + "/" + articleId) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken()))) .andDo(print()) @@ -216,7 +216,7 @@ private List showSalesHistory() throws Exception { String tradeState = "ON_SALE"; MvcResult mvcResult = mockMvc.perform( - get(API_URI + ARTICLE_URI) + MockMvcRequestBuilders.get(ArticleController.ARTICLE_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .param("tradeState", tradeState)) @@ -249,7 +249,7 @@ private void updateTradeState(Long articleId) throws Exception { TradeStateRequest tradeStateRequest = new TradeStateRequest(tradeState); mockMvc.perform( - put(API_URI + ARTICLE_URI + "/" + articleId + TRADE_STATE_URI) + put(ArticleController.ARTICLE_API_URI + "/" + articleId + ArticleController.TRADE_STATE_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .accept(MediaType.APPLICATION_JSON_VALUE) diff --git a/back/src/test/java/sellerlee/back/article/application/ArticleServiceTest.java b/back/api/src/test/java/com/jikgorae/api/article/application/ArticleServiceTest.java similarity index 87% rename from back/src/test/java/sellerlee/back/article/application/ArticleServiceTest.java rename to back/api/src/test/java/com/jikgorae/api/article/application/ArticleServiceTest.java index cf3e4fec..07e60ea4 100644 --- a/back/src/test/java/sellerlee/back/article/application/ArticleServiceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/article/application/ArticleServiceTest.java @@ -1,9 +1,9 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; +import static com.jikgorae.api.fixture.ArticleFixture.*; +import static com.jikgorae.api.fixture.MemberFixture.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; import java.util.Optional; @@ -14,7 +14,7 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import sellerlee.back.article.domain.ArticleRepository; +import com.jikgorae.api.article.domain.ArticleRepository; @ExtendWith(value = MockitoExtension.class) class ArticleServiceTest { @@ -55,7 +55,7 @@ void update() { void deleteArticle() { when(articleRepository.findById(ARTICLE1.getId())).thenReturn(Optional.of(ARTICLE1)); - articleService.deleteById(ARTICLE1.getId(),MEMBER1); + articleService.deleteById(ARTICLE1.getId(), MEMBER1); verify(articleRepository).deleteById(ARTICLE1.getId()); } diff --git a/back/src/test/java/sellerlee/back/article/application/ArticleViewServiceTest.java b/back/api/src/test/java/com/jikgorae/api/article/application/ArticleViewServiceTest.java similarity index 84% rename from back/src/test/java/sellerlee/back/article/application/ArticleViewServiceTest.java rename to back/api/src/test/java/com/jikgorae/api/article/application/ArticleViewServiceTest.java index 16b3ba8f..9bc2d70a 100644 --- a/back/src/test/java/sellerlee/back/article/application/ArticleViewServiceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/article/application/ArticleViewServiceTest.java @@ -1,14 +1,13 @@ -package sellerlee.back.article.application; +package com.jikgorae.api.article.application; +import static com.jikgorae.api.article.acceptance.ArticleAcceptanceTest.*; +import static com.jikgorae.api.fixture.ArticleFixture.*; +import static com.jikgorae.api.fixture.FavoriteFixture.*; +import static com.jikgorae.api.fixture.MemberFixture.*; import static java.util.Arrays.*; import static java.util.Collections.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.Mockito.*; -import static sellerlee.back.article.acceptance.ArticleAcceptanceTest.*; -import static sellerlee.back.article.application.ArticleViewService.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.FavoriteFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; import java.util.Collections; import java.util.List; @@ -24,13 +23,13 @@ import org.springframework.data.domain.PageImpl; import org.springframework.data.domain.PageRequest; -import sellerlee.back.article.domain.Article; -import sellerlee.back.article.domain.ArticleRepository; -import sellerlee.back.article.domain.TradeState; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCount; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCountRepository; -import sellerlee.back.favorite.domain.Favorite; -import sellerlee.back.favorite.domain.FavoriteRepository; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.api.article.domain.ArticleRepository; +import com.jikgorae.api.article.domain.TradeState; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCount; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCountRepository; +import com.jikgorae.api.favorite.domain.Favorite; +import com.jikgorae.api.favorite.domain.FavoriteRepository; @ExtendWith(value = MockitoExtension.class) class ArticleViewServiceTest { @@ -70,7 +69,7 @@ void showArticle() { void showPageByCategory() { List
articles = asList(ARTICLE2, ARTICLE1); List favoriteCounts = asList(1L, 2L); - PageRequest pageRequest = PageRequest.of(FIRST_PAGE, ARTICLE_SIZE); + PageRequest pageRequest = PageRequest.of(ArticleViewService.FIRST_PAGE, ARTICLE_SIZE); Page
expectedPage = new PageImpl<>(articles); when(articleRepository.findByIdLessThanAndCategoryOrderByIdDesc(LAST_ARTICLE_ID, diff --git a/back/src/test/java/sellerlee/back/article/domain/PhotosTest.java b/back/api/src/test/java/com/jikgorae/api/article/domain/PhotosTest.java similarity index 92% rename from back/src/test/java/sellerlee/back/article/domain/PhotosTest.java rename to back/api/src/test/java/com/jikgorae/api/article/domain/PhotosTest.java index bf4eb132..a791c323 100644 --- a/back/src/test/java/sellerlee/back/article/domain/PhotosTest.java +++ b/back/api/src/test/java/com/jikgorae/api/article/domain/PhotosTest.java @@ -1,4 +1,4 @@ -package sellerlee.back.article.domain; +package com.jikgorae.api.article.domain; import static org.assertj.core.api.Assertions.*; diff --git a/back/src/test/java/sellerlee/back/article/presentation/ArticleControllerTest.java b/back/api/src/test/java/com/jikgorae/api/article/presentation/ArticleControllerTest.java similarity index 85% rename from back/src/test/java/sellerlee/back/article/presentation/ArticleControllerTest.java rename to back/api/src/test/java/com/jikgorae/api/article/presentation/ArticleControllerTest.java index 20573079..334b3a24 100644 --- a/back/src/test/java/sellerlee/back/article/presentation/ArticleControllerTest.java +++ b/back/api/src/test/java/com/jikgorae/api/article/presentation/ArticleControllerTest.java @@ -1,5 +1,9 @@ -package sellerlee.back.article.presentation; +package com.jikgorae.api.article.presentation; +import static com.jikgorae.api.article.acceptance.ArticleAcceptanceTest.*; +import static com.jikgorae.api.fixture.ArticleFixture.*; +import static com.jikgorae.api.fixture.MemberFixture.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; import static java.util.Collections.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; @@ -10,13 +14,6 @@ import static org.springframework.restdocs.request.RequestDocumentation.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.article.acceptance.ArticleAcceptanceTest.*; -import static sellerlee.back.article.presentation.ArticleController.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; -import static sellerlee.back.security.web.context.TokenSecurityInterceptorTest.*; import java.util.Arrays; @@ -27,16 +24,18 @@ import org.springframework.http.MediaType; import org.springframework.restdocs.mockmvc.RestDocumentationRequestBuilders; import org.springframework.restdocs.payload.JsonFieldType; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import sellerlee.back.ControllerTest; -import sellerlee.back.article.application.ArticleCardResponse; -import sellerlee.back.article.application.ArticleResponse; -import sellerlee.back.article.application.ArticleService; -import sellerlee.back.article.application.ArticleViewService; -import sellerlee.back.article.application.FeedResponse; -import sellerlee.back.article.application.TradeStateRequest; -import sellerlee.back.article.domain.Category; -import sellerlee.back.article.query.ArticleDao; +import com.jikgorae.api.ControllerTest; +import com.jikgorae.api.article.application.ArticleCardResponse; +import com.jikgorae.api.article.application.ArticleResponse; +import com.jikgorae.api.article.application.ArticleService; +import com.jikgorae.api.article.application.ArticleViewService; +import com.jikgorae.api.article.application.FeedResponse; +import com.jikgorae.api.article.application.TradeStateRequest; +import com.jikgorae.api.article.domain.Category; +import com.jikgorae.api.article.query.ArticleDao; +import com.jikgorae.api.security.web.context.TokenSecurityInterceptorTest; @WebMvcTest(controllers = ArticleController.class) class ArticleControllerTest extends ControllerTest { @@ -59,8 +58,8 @@ void createArticle() throws Exception { // @formatter:off mockMvc .perform( - post(API_URI+ARTICLE_URI) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) + MockMvcRequestBuilders.post(ArticleController.ARTICLE_API_URI) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER) .accept(MediaType.APPLICATION_JSON) .contentType(MediaType.APPLICATION_JSON) .content(request)) @@ -96,8 +95,8 @@ void showPage() throws Exception { // @formatter:off mockMvc .perform( - get(API_URI + ARTICLE_URI) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) + MockMvcRequestBuilders.get(ArticleController.ARTICLE_API_URI) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER) .param("lastArticleId", String.valueOf(LAST_ARTICLE_ID)) .param("size", String.valueOf(ARTICLE_SIZE))) .andExpect(status().isOk()) @@ -134,8 +133,8 @@ void showPageByCategory() throws Exception { // @formatter:off mockMvc .perform( - get(API_URI + ARTICLE_URI) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) + MockMvcRequestBuilders.get(ArticleController.ARTICLE_API_URI) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER) .param("lastArticleId", String.valueOf(LAST_ARTICLE_ID)) .param("size", String.valueOf(ARTICLE_SIZE)) .param("category", Category.ETC.getCategoryName())) @@ -175,8 +174,8 @@ void showArticle() throws Exception { // @formatter:off mockMvc .perform( - RestDocumentationRequestBuilders.get(API_URI + ARTICLE_URI + "/{id}", ARTICLE1.getId()) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER)) + RestDocumentationRequestBuilders.get(ArticleController.ARTICLE_API_URI + "/{id}", ARTICLE1.getId()) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER)) .andExpect(status().isOk()) .andDo( document("articles/get", @@ -213,8 +212,8 @@ void deleteArticle() throws Exception { // @formatter:off mockMvc .perform( - delete(API_URI+ARTICLE_URI + "/" + ARTICLE1.getId()) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER)) + delete(ArticleController.ARTICLE_API_URI + "/" + ARTICLE1.getId()) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER)) .andExpect(status().isNoContent()); // @formatter:on } @@ -230,7 +229,7 @@ void showByTradeState() throws Exception { // @formatter:off mockMvc .perform( - get(API_URI + ARTICLE_URI) + MockMvcRequestBuilders.get(ArticleController.ARTICLE_API_URI) .param("tradeState", tradeState)) .andExpect(status().isOk()); // @formatter:on @@ -248,7 +247,7 @@ void updateTradeState() throws Exception { // @formatter:off mockMvc .perform( - put(API_URI + ARTICLE_URI + "/" + MEMBER1.getId() + TRADE_STATE_URI) + put(ArticleController.ARTICLE_API_URI + "/" + MEMBER1.getId() + ArticleController.TRADE_STATE_URI) .content(request) .accept(MediaType.APPLICATION_JSON) .contentType(MediaType.APPLICATION_JSON)) diff --git a/back/src/test/java/sellerlee/back/articlefavoritecount/application/ArticleFavoriteCountServiceTest.java b/back/api/src/test/java/com/jikgorae/api/articlefavoritecount/application/ArticleFavoriteCountServiceTest.java similarity index 89% rename from back/src/test/java/sellerlee/back/articlefavoritecount/application/ArticleFavoriteCountServiceTest.java rename to back/api/src/test/java/com/jikgorae/api/articlefavoritecount/application/ArticleFavoriteCountServiceTest.java index 6893170c..2e11ab13 100644 --- a/back/src/test/java/sellerlee/back/articlefavoritecount/application/ArticleFavoriteCountServiceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/articlefavoritecount/application/ArticleFavoriteCountServiceTest.java @@ -1,9 +1,9 @@ -package sellerlee.back.articlefavoritecount.application; +package com.jikgorae.api.articlefavoritecount.application; +import static com.jikgorae.api.fixture.ArticleFixture.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import static sellerlee.back.fixture.ArticleFixture.*; import java.util.Optional; @@ -14,8 +14,8 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCount; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCountRepository; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCount; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCountRepository; @ExtendWith(MockitoExtension.class) class ArticleFavoriteCountServiceTest { diff --git a/back/src/test/java/sellerlee/back/chatroom/acceptance/ChatRoomAcceptanceTest.java b/back/api/src/test/java/com/jikgorae/api/chatroom/acceptance/ChatRoomAcceptanceTest.java similarity index 83% rename from back/src/test/java/sellerlee/back/chatroom/acceptance/ChatRoomAcceptanceTest.java rename to back/api/src/test/java/com/jikgorae/api/chatroom/acceptance/ChatRoomAcceptanceTest.java index 371a2aad..3cb45301 100644 --- a/back/src/test/java/sellerlee/back/chatroom/acceptance/ChatRoomAcceptanceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/chatroom/acceptance/ChatRoomAcceptanceTest.java @@ -1,14 +1,11 @@ -package sellerlee.back.chatroom.acceptance; +package com.jikgorae.api.chatroom.acceptance; +import static com.jikgorae.api.fixture.MemberFixture.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.DynamicTest.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.chatroom.presentation.ChatRoomController.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; import java.util.List; import java.util.stream.Stream; @@ -19,12 +16,14 @@ import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import sellerlee.back.AcceptanceTest; -import sellerlee.back.chatroom.application.ChatRoomCreateRequest; -import sellerlee.back.chatroom.application.ChatRoomResponse; -import sellerlee.back.member.application.TokenResponse; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.AcceptanceTest; +import com.jikgorae.api.chatroom.application.ChatRoomCreateRequest; +import com.jikgorae.api.chatroom.application.ChatRoomResponse; +import com.jikgorae.api.chatroom.presentation.ChatRoomController; +import com.jikgorae.api.member.application.TokenResponse; +import com.jikgorae.api.security.web.AuthorizationType; public class ChatRoomAcceptanceTest extends AcceptanceTest { private TokenResponse token; @@ -63,7 +62,7 @@ private void createChatRoom(Long articleId) throws Exception { String request = objectMapper.writeValueAsString(new ChatRoomCreateRequest(articleId, 1L)); mockMvc.perform( - post(API_URI + CHAT_ROOM_URI) + MockMvcRequestBuilders.post(ChatRoomController.CHAT_ROOM_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .accept(MediaType.APPLICATION_JSON) @@ -88,7 +87,7 @@ private void createChatRoom(Long articleId) throws Exception { private List showAllChatRoomsOfArticle(Long articleId) throws Exception { MvcResult mvcResult = mockMvc.perform( - get(API_URI + CHAT_ROOM_URI) + MockMvcRequestBuilders.get(ChatRoomController.CHAT_ROOM_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .param("articleId", String.valueOf(articleId))) diff --git a/back/src/test/java/sellerlee/back/chatroom/application/ChatRoomServiceTest.java b/back/api/src/test/java/com/jikgorae/api/chatroom/application/ChatRoomServiceTest.java similarity index 86% rename from back/src/test/java/sellerlee/back/chatroom/application/ChatRoomServiceTest.java rename to back/api/src/test/java/com/jikgorae/api/chatroom/application/ChatRoomServiceTest.java index 85166ecd..032c609f 100644 --- a/back/src/test/java/sellerlee/back/chatroom/application/ChatRoomServiceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/chatroom/application/ChatRoomServiceTest.java @@ -1,10 +1,10 @@ -package sellerlee.back.chatroom.application; +package com.jikgorae.api.chatroom.application; +import static com.jikgorae.api.fixture.ArticleFixture.*; +import static com.jikgorae.api.fixture.MemberFixture.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; import java.util.Arrays; import java.util.List; @@ -16,8 +16,8 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import sellerlee.back.chatroom.domain.ChatRoom; -import sellerlee.back.chatroom.domain.ChatRoomRepository; +import com.jikgorae.api.chatroom.domain.ChatRoom; +import com.jikgorae.api.chatroom.domain.ChatRoomRepository; @ExtendWith(value = MockitoExtension.class) class ChatRoomServiceTest { diff --git a/back/src/test/java/sellerlee/back/chatroom/presentation/ChatRoomControllerTest.java b/back/api/src/test/java/com/jikgorae/api/chatroom/presentation/ChatRoomControllerTest.java similarity index 78% rename from back/src/test/java/sellerlee/back/chatroom/presentation/ChatRoomControllerTest.java rename to back/api/src/test/java/com/jikgorae/api/chatroom/presentation/ChatRoomControllerTest.java index 38c0e473..2ec81174 100644 --- a/back/src/test/java/sellerlee/back/chatroom/presentation/ChatRoomControllerTest.java +++ b/back/api/src/test/java/com/jikgorae/api/chatroom/presentation/ChatRoomControllerTest.java @@ -1,5 +1,8 @@ -package sellerlee.back.chatroom.presentation; +package com.jikgorae.api.chatroom.presentation; +import static com.jikgorae.api.fixture.ArticleFixture.*; +import static com.jikgorae.api.fixture.MemberFixture.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import static org.springframework.restdocs.headers.HeaderDocumentation.*; @@ -7,14 +10,7 @@ import static org.springframework.restdocs.operation.preprocess.Preprocessors.*; import static org.springframework.restdocs.payload.PayloadDocumentation.*; import static org.springframework.restdocs.request.RequestDocumentation.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.chatroom.presentation.ChatRoomController.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; -import static sellerlee.back.security.web.context.TokenSecurityInterceptorTest.*; import java.util.Collections; @@ -24,11 +20,13 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; import org.springframework.restdocs.payload.JsonFieldType; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import sellerlee.back.ControllerTest; -import sellerlee.back.chatroom.application.ChatRoomCreateRequest; -import sellerlee.back.chatroom.application.ChatRoomResponse; -import sellerlee.back.chatroom.application.ChatRoomService; +import com.jikgorae.api.ControllerTest; +import com.jikgorae.api.chatroom.application.ChatRoomCreateRequest; +import com.jikgorae.api.chatroom.application.ChatRoomResponse; +import com.jikgorae.api.chatroom.application.ChatRoomService; +import com.jikgorae.api.security.web.context.TokenSecurityInterceptorTest; @WebMvcTest(controllers = ChatRoomController.class) class ChatRoomControllerTest extends ControllerTest { @@ -48,8 +46,8 @@ void createChatRoom() throws Exception { // @formatter:off mockMvc .perform( - post(API_URI+CHAT_ROOM_URI) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) + MockMvcRequestBuilders.post(ChatRoomController.CHAT_ROOM_API_URI) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER) .content(request) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isCreated()) @@ -79,8 +77,8 @@ void showChatRoomOfArticle() throws Exception { // @formatter:off mockMvc .perform( - get(API_URI+CHAT_ROOM_URI) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) + MockMvcRequestBuilders.get(ChatRoomController.CHAT_ROOM_API_URI) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER) .param("articleId", "1")) .andExpect(status().isOk()) .andDo( diff --git a/back/src/test/java/sellerlee/back/common/PageControllerTest.java b/back/api/src/test/java/com/jikgorae/api/common/PageControllerTest.java similarity index 71% rename from back/src/test/java/sellerlee/back/common/PageControllerTest.java rename to back/api/src/test/java/com/jikgorae/api/common/PageControllerTest.java index 923b589f..b849c40f 100644 --- a/back/src/test/java/sellerlee/back/common/PageControllerTest.java +++ b/back/api/src/test/java/com/jikgorae/api/common/PageControllerTest.java @@ -1,14 +1,13 @@ -package sellerlee.back.common; +package com.jikgorae.api.common; import static org.assertj.core.api.Assertions.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static sellerlee.back.common.PageController.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import sellerlee.back.ControllerTest; +import com.jikgorae.api.ControllerTest; @WebMvcTest(PageController.class) class PageControllerTest extends ControllerTest { @@ -18,7 +17,7 @@ class PageControllerTest extends ControllerTest { void showDocuments() throws Exception { String expectedUrl = "docs.html"; - String actualUrl = mockMvc.perform(get(API_DOCS_URI)) + String actualUrl = mockMvc.perform(MockMvcRequestBuilders.get(PageController.API_DOCS_URI)) .andReturn() .getResponse() .getForwardedUrl(); @@ -30,7 +29,7 @@ void showDocuments() throws Exception { void showPrivacy() throws Exception { String expectedUrl = "privacy.html"; - String actualUrl = mockMvc.perform(get(PRIVACY_URI)) + String actualUrl = mockMvc.perform(MockMvcRequestBuilders.get(PageController.PRIVACY_URI)) .andReturn() .getResponse() .getForwardedUrl(); diff --git a/back/src/test/java/sellerlee/back/evaluation/acceptance/EvaluationAcceptanceTest.java b/back/api/src/test/java/com/jikgorae/api/evaluation/acceptance/EvaluationAcceptanceTest.java similarity index 74% rename from back/src/test/java/sellerlee/back/evaluation/acceptance/EvaluationAcceptanceTest.java rename to back/api/src/test/java/com/jikgorae/api/evaluation/acceptance/EvaluationAcceptanceTest.java index 25b0560d..82180606 100644 --- a/back/src/test/java/sellerlee/back/evaluation/acceptance/EvaluationAcceptanceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/evaluation/acceptance/EvaluationAcceptanceTest.java @@ -1,14 +1,10 @@ -package sellerlee.back.evaluation.acceptance; +package com.jikgorae.api.evaluation.acceptance; +import static com.jikgorae.api.fixture.EvaluationFixture.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; import static org.junit.jupiter.api.DynamicTest.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.evaluation.presentation.EvaluationController.*; -import static sellerlee.back.fixture.EvaluationFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; import java.util.stream.Stream; @@ -17,11 +13,14 @@ import org.junit.jupiter.api.TestFactory; import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; import com.fasterxml.jackson.core.JsonProcessingException; -import sellerlee.back.AcceptanceTest; -import sellerlee.back.member.application.TokenResponse; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.AcceptanceTest; +import com.jikgorae.api.evaluation.presentation.EvaluationController; +import com.jikgorae.api.fixture.MemberFixture; +import com.jikgorae.api.member.application.TokenResponse; +import com.jikgorae.api.security.web.AuthorizationType; public class EvaluationAcceptanceTest extends AcceptanceTest { private TokenResponse token; @@ -38,7 +37,7 @@ public class EvaluationAcceptanceTest extends AcceptanceTest { @TestFactory @WithMockUser Stream manageEvaluation() throws JsonProcessingException { - token = joinAndLogin(MEMBER1); + token = joinAndLogin(MemberFixture.MEMBER1); return Stream.of( dynamicTest("평가 추가", this::postEvaluation) @@ -49,7 +48,7 @@ private void postEvaluation() throws Exception { String request = objectMapper.writeValueAsString(EVALUATION_REQUEST); mockMvc.perform( - post(API_URI + EVALUATION_URI) + MockMvcRequestBuilders.post(EvaluationController.EVALUATION_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .accept(MediaType.APPLICATION_JSON) diff --git a/back/src/test/java/sellerlee/back/evaluation/application/EvaluationServiceTest.java b/back/api/src/test/java/com/jikgorae/api/evaluation/application/EvaluationServiceTest.java similarity index 75% rename from back/src/test/java/sellerlee/back/evaluation/application/EvaluationServiceTest.java rename to back/api/src/test/java/com/jikgorae/api/evaluation/application/EvaluationServiceTest.java index 9678ed5d..46d1773c 100644 --- a/back/src/test/java/sellerlee/back/evaluation/application/EvaluationServiceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/evaluation/application/EvaluationServiceTest.java @@ -1,10 +1,10 @@ -package sellerlee.back.evaluation.application; +package com.jikgorae.api.evaluation.application; +import static com.jikgorae.api.fixture.EvaluationFixture.*; +import static com.jikgorae.api.fixture.TradeFixture.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import static sellerlee.back.fixture.EvaluationFixture.*; -import static sellerlee.back.fixture.TradeFixture.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -12,9 +12,9 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import sellerlee.back.evaluation.domain.Evaluation; -import sellerlee.back.evaluation.domain.EvaluationRepository; -import sellerlee.back.member.domain.Member; +import com.jikgorae.api.evaluation.domain.Evaluation; +import com.jikgorae.api.evaluation.domain.EvaluationRepository; +import com.jikgorae.common.member.domain.Member; @ExtendWith(value = MockitoExtension.class) public class EvaluationServiceTest { diff --git a/back/src/test/java/sellerlee/back/evaluation/presentation/EvaluationControllerTest.java b/back/api/src/test/java/com/jikgorae/api/evaluation/presentation/EvaluationControllerTest.java similarity index 61% rename from back/src/test/java/sellerlee/back/evaluation/presentation/EvaluationControllerTest.java rename to back/api/src/test/java/com/jikgorae/api/evaluation/presentation/EvaluationControllerTest.java index da7cc266..9faa1406 100644 --- a/back/src/test/java/sellerlee/back/evaluation/presentation/EvaluationControllerTest.java +++ b/back/api/src/test/java/com/jikgorae/api/evaluation/presentation/EvaluationControllerTest.java @@ -1,13 +1,9 @@ -package sellerlee.back.evaluation.presentation; +package com.jikgorae.api.evaluation.presentation; +import static com.jikgorae.api.fixture.EvaluationFixture.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; import static org.mockito.Mockito.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.evaluation.presentation.EvaluationController.*; -import static sellerlee.back.fixture.EvaluationFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; -import static sellerlee.back.security.web.context.TokenSecurityInterceptorTest.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -15,9 +11,11 @@ import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import sellerlee.back.ControllerTest; -import sellerlee.back.evaluation.application.EvaluationService; +import com.jikgorae.api.ControllerTest; +import com.jikgorae.api.evaluation.application.EvaluationService; +import com.jikgorae.api.security.web.context.TokenSecurityInterceptorTest; @WebMvcTest(controllers = EvaluationController.class) public class EvaluationControllerTest extends ControllerTest { @@ -33,8 +31,8 @@ void createEvaluation() throws Exception { // @formatter:off mockMvc .perform( - post(API_URI+EVALUATION_URI) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) + MockMvcRequestBuilders.post(EvaluationController.EVALUATION_API_URI) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER) .content(request) .contentType(MediaType.APPLICATION_JSON)) .andExpect(status().isCreated()); diff --git a/back/src/test/java/sellerlee/back/favorite/acceptance/FavoriteAcceptanceTest.java b/back/api/src/test/java/com/jikgorae/api/favorite/acceptance/FavoriteAcceptanceTest.java similarity index 84% rename from back/src/test/java/sellerlee/back/favorite/acceptance/FavoriteAcceptanceTest.java rename to back/api/src/test/java/com/jikgorae/api/favorite/acceptance/FavoriteAcceptanceTest.java index 77b978e2..fabddc43 100644 --- a/back/src/test/java/sellerlee/back/favorite/acceptance/FavoriteAcceptanceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/favorite/acceptance/FavoriteAcceptanceTest.java @@ -1,13 +1,11 @@ -package sellerlee.back.favorite.acceptance; +package com.jikgorae.api.favorite.acceptance; +import static com.jikgorae.api.favorite.presentation.FavoriteController.*; +import static com.jikgorae.api.fixture.MemberFixture.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; import static org.junit.jupiter.api.DynamicTest.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.favorite.presentation.FavoriteController.*; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; import java.util.stream.Stream; @@ -17,11 +15,12 @@ import org.springframework.http.MediaType; import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MvcResult; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import sellerlee.back.AcceptanceTest; -import sellerlee.back.favorite.application.FavoriteRequest; -import sellerlee.back.member.application.TokenResponse; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.AcceptanceTest; +import com.jikgorae.api.favorite.application.FavoriteRequest; +import com.jikgorae.api.member.application.TokenResponse; +import com.jikgorae.api.security.web.AuthorizationType; public class FavoriteAcceptanceTest extends AcceptanceTest { private TokenResponse token; @@ -57,7 +56,7 @@ private String createFavorite(Long articleId) throws Exception { FavoriteRequest request = new FavoriteRequest(articleId); MvcResult mvcResult = mockMvc.perform( - post(API_URI + FAVORITE_URI) + MockMvcRequestBuilders.post(FAVORITE_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .accept(MediaType.APPLICATION_JSON_VALUE) @@ -89,7 +88,7 @@ private void deleteFavorite(Long articleId) throws Exception { FavoriteRequest request = new FavoriteRequest(articleId); mockMvc.perform( - delete(API_URI + FAVORITE_URI) + MockMvcRequestBuilders.delete(FAVORITE_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .accept(MediaType.APPLICATION_JSON_VALUE) diff --git a/back/src/test/java/sellerlee/back/favorite/application/FavoriteServiceTest.java b/back/api/src/test/java/com/jikgorae/api/favorite/application/FavoriteServiceTest.java similarity index 78% rename from back/src/test/java/sellerlee/back/favorite/application/FavoriteServiceTest.java rename to back/api/src/test/java/com/jikgorae/api/favorite/application/FavoriteServiceTest.java index 53c1391e..62c30aa0 100644 --- a/back/src/test/java/sellerlee/back/favorite/application/FavoriteServiceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/favorite/application/FavoriteServiceTest.java @@ -1,12 +1,12 @@ -package sellerlee.back.favorite.application; +package com.jikgorae.api.favorite.application; +import static com.jikgorae.api.fixture.ArticleFixture.*; +import static com.jikgorae.api.fixture.FavoriteFixture.*; +import static com.jikgorae.api.fixture.MemberFixture.*; import static java.util.Collections.*; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.FavoriteFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; import java.util.List; @@ -17,12 +17,12 @@ import org.mockito.Mock; import org.mockito.junit.jupiter.MockitoExtension; -import sellerlee.back.article.application.ArticleCardResponse; -import sellerlee.back.article.application.ArticleViewService; -import sellerlee.back.article.domain.ArticleRepository; -import sellerlee.back.articlefavoritecount.domain.ArticleFavoriteCountRepository; -import sellerlee.back.favorite.domain.Favorite; -import sellerlee.back.favorite.domain.FavoriteRepository; +import com.jikgorae.api.article.application.ArticleCardResponse; +import com.jikgorae.api.article.application.ArticleViewService; +import com.jikgorae.api.article.domain.ArticleRepository; +import com.jikgorae.api.articlefavoritecount.domain.ArticleFavoriteCountRepository; +import com.jikgorae.api.favorite.domain.Favorite; +import com.jikgorae.api.favorite.domain.FavoriteRepository; @ExtendWith(value = MockitoExtension.class) class FavoriteServiceTest { diff --git a/back/src/test/java/sellerlee/back/favorite/presentation/FavoriteControllerTest.java b/back/api/src/test/java/com/jikgorae/api/favorite/presentation/FavoriteControllerTest.java similarity index 76% rename from back/src/test/java/sellerlee/back/favorite/presentation/FavoriteControllerTest.java rename to back/api/src/test/java/com/jikgorae/api/favorite/presentation/FavoriteControllerTest.java index e5fc604b..16cf9d27 100644 --- a/back/src/test/java/sellerlee/back/favorite/presentation/FavoriteControllerTest.java +++ b/back/api/src/test/java/com/jikgorae/api/favorite/presentation/FavoriteControllerTest.java @@ -1,5 +1,7 @@ -package sellerlee.back.favorite.presentation; +package com.jikgorae.api.favorite.presentation; +import static com.jikgorae.api.fixture.ArticleFixture.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; import static java.util.Collections.*; import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; @@ -7,13 +9,7 @@ import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.*; import static org.springframework.restdocs.operation.preprocess.Preprocessors.*; import static org.springframework.restdocs.payload.PayloadDocumentation.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.favorite.presentation.FavoriteController.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; -import static sellerlee.back.security.web.context.TokenSecurityInterceptorTest.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -21,11 +17,13 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.HttpHeaders; import org.springframework.http.MediaType; +import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; -import sellerlee.back.ControllerTest; -import sellerlee.back.article.application.ArticleCardResponse; -import sellerlee.back.favorite.application.FavoriteRequest; -import sellerlee.back.favorite.application.FavoriteService; +import com.jikgorae.api.ControllerTest; +import com.jikgorae.api.article.application.ArticleCardResponse; +import com.jikgorae.api.favorite.application.FavoriteRequest; +import com.jikgorae.api.favorite.application.FavoriteService; +import com.jikgorae.api.security.web.context.TokenSecurityInterceptorTest; @WebMvcTest(controllers = FavoriteController.class) class FavoriteControllerTest extends ControllerTest { @@ -42,8 +40,8 @@ void showFavorites() throws Exception { // @formatter:off mockMvc .perform( - get(API_URI + FAVORITE_URI) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER)) + MockMvcRequestBuilders.get(FavoriteController.FAVORITE_API_URI) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER)) .andExpect(status().isOk()) .andDo(document("articles/favorites", preprocessRequest(prettyPrint()), @@ -74,8 +72,8 @@ void create() throws Exception { // @formatter:off mockMvc .perform( - post(API_URI+FAVORITE_URI) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) + MockMvcRequestBuilders.post(FavoriteController.FAVORITE_API_URI) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER) .contentType(MediaType.APPLICATION_JSON) .content(request)) .andExpect(header().exists(HttpHeaders.LOCATION)) @@ -90,8 +88,8 @@ void deleteFavorite() throws Exception { // @formatter:off mockMvc .perform( - delete(API_URI+FAVORITE_URI) - .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) + MockMvcRequestBuilders.delete(FavoriteController.FAVORITE_API_URI) + .header(AUTHORIZATION, TokenSecurityInterceptorTest.TEST_AUTHORIZATION_HEADER) .contentType(MediaType.APPLICATION_JSON) .content(request)) .andExpect(status().isNoContent()); diff --git a/back/src/test/java/sellerlee/back/fixture/ArticleFixture.java b/back/api/src/test/java/com/jikgorae/api/fixture/ArticleFixture.java similarity index 83% rename from back/src/test/java/sellerlee/back/fixture/ArticleFixture.java rename to back/api/src/test/java/com/jikgorae/api/fixture/ArticleFixture.java index ceaba979..6cb9126f 100644 --- a/back/src/test/java/sellerlee/back/fixture/ArticleFixture.java +++ b/back/api/src/test/java/com/jikgorae/api/fixture/ArticleFixture.java @@ -1,19 +1,18 @@ -package sellerlee.back.fixture; +package com.jikgorae.api.fixture; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.fixture.TagFixture.*; +import static com.jikgorae.api.fixture.TagFixture.*; import java.time.LocalDateTime; import java.util.Arrays; import org.assertj.core.util.Lists; -import sellerlee.back.article.application.ArticleRequest; -import sellerlee.back.article.domain.Article; -import sellerlee.back.article.domain.Category; -import sellerlee.back.article.domain.Photos; -import sellerlee.back.article.domain.Tags; -import sellerlee.back.article.domain.TradeState; +import com.jikgorae.api.article.application.ArticleRequest; +import com.jikgorae.api.article.domain.Article; +import com.jikgorae.api.article.domain.Category; +import com.jikgorae.api.article.domain.Photos; +import com.jikgorae.api.article.domain.Tags; +import com.jikgorae.api.article.domain.TradeState; public class ArticleFixture { public static final Article ARTICLE1 = new Article( @@ -28,7 +27,7 @@ public class ArticleFixture { "https://avatars1.githubusercontent.com/u/48052622?s=400&u=a6aefc01e1ed6d8407e868a66227716d1813182b&v=4", "https://avatars1.githubusercontent.com/u/48052622?s=400&u=a6aefc01e1ed6d8407e868a66227716d1813182b&v=4", "https://avatars2.githubusercontent.com/u/39271364?s=400&u=be1f013910aa0af5338022bd65811e0204746f9a&v=4"), - MEMBER1, + MemberFixture.MEMBER1, LocalDateTime.now(), LocalDateTime.now() ); @@ -44,7 +43,7 @@ public class ArticleFixture { Photos.of( "https://avatars2.githubusercontent.com/u/31095063?s=400&u=e10e5d42924c8443b43faf9e943ff8aa73d6c79d&v=4", "https://avatars3.githubusercontent.com/u/52931057?s=400&u=e1a3a103fc54a423fd56ab6fafce748d360f3336&v=4"), - MEMBER1, + MemberFixture.MEMBER1, LocalDateTime.now(), LocalDateTime.now() ); @@ -59,7 +58,7 @@ public class ArticleFixture { TradeState.ON_SALE, Photos.of( "https://avatars0.githubusercontent.com/u/53935703?s=400&u=a341d3951da813dca6ec6652c6d1f1d38aa1e42d&v=4"), - MEMBER1, + MemberFixture.MEMBER1, LocalDateTime.now(), LocalDateTime.now() ); diff --git a/back/src/test/java/sellerlee/back/fixture/EvaluationFixture.java b/back/api/src/test/java/com/jikgorae/api/fixture/EvaluationFixture.java similarity index 58% rename from back/src/test/java/sellerlee/back/fixture/EvaluationFixture.java rename to back/api/src/test/java/com/jikgorae/api/fixture/EvaluationFixture.java index bd281894..56cbd54a 100644 --- a/back/src/test/java/sellerlee/back/fixture/EvaluationFixture.java +++ b/back/api/src/test/java/com/jikgorae/api/fixture/EvaluationFixture.java @@ -1,14 +1,13 @@ -package sellerlee.back.fixture; +package com.jikgorae.api.fixture; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.fixture.TradeFixture.*; +import static com.jikgorae.api.fixture.TradeFixture.*; import java.util.List; import org.assertj.core.util.Lists; -import sellerlee.back.evaluation.application.EvaluationRequest; -import sellerlee.back.evaluation.domain.Score; +import com.jikgorae.api.evaluation.application.EvaluationRequest; +import com.jikgorae.api.evaluation.domain.Score; public class EvaluationFixture { private static final List SCORES = Lists.newArrayList( @@ -20,5 +19,5 @@ public class EvaluationFixture { ); public static final EvaluationRequest EVALUATION_REQUEST = new EvaluationRequest( - SCORES, TRADE1, MEMBER1); + SCORES, TRADE1, MemberFixture.MEMBER1); } diff --git a/back/api/src/test/java/com/jikgorae/api/fixture/FavoriteFixture.java b/back/api/src/test/java/com/jikgorae/api/fixture/FavoriteFixture.java new file mode 100644 index 00000000..18199daa --- /dev/null +++ b/back/api/src/test/java/com/jikgorae/api/fixture/FavoriteFixture.java @@ -0,0 +1,8 @@ +package com.jikgorae.api.fixture; + +import com.jikgorae.api.favorite.domain.Favorite; + +public class FavoriteFixture { + public static final Favorite FAVORITE1 = new Favorite(51L, ArticleFixture.ARTICLE1, MemberFixture.MEMBER1); + public static final Favorite FAVORITE2 = new Favorite(52L, ArticleFixture.ARTICLE2, MemberFixture.MEMBER2); +} diff --git a/back/src/test/java/sellerlee/back/fixture/MemberFixture.java b/back/api/src/test/java/com/jikgorae/api/fixture/MemberFixture.java similarity index 87% rename from back/src/test/java/sellerlee/back/fixture/MemberFixture.java rename to back/api/src/test/java/com/jikgorae/api/fixture/MemberFixture.java index e453ab82..f9d839f8 100644 --- a/back/src/test/java/sellerlee/back/fixture/MemberFixture.java +++ b/back/api/src/test/java/com/jikgorae/api/fixture/MemberFixture.java @@ -1,10 +1,10 @@ -package sellerlee.back.fixture; +package com.jikgorae.api.fixture; -import sellerlee.back.member.application.LoginRequest; -import sellerlee.back.member.application.MemberRequest; -import sellerlee.back.member.application.ProfileRequest; -import sellerlee.back.member.domain.Member; -import sellerlee.back.member.domain.State; +import com.jikgorae.api.member.application.LoginRequest; +import com.jikgorae.api.member.application.MemberRequest; +import com.jikgorae.api.member.application.ProfileRequest; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.member.domain.State; public class MemberFixture { private static final String MEMBER_NICKNAME = "seller lee"; diff --git a/back/src/test/java/sellerlee/back/fixture/TagFixture.java b/back/api/src/test/java/com/jikgorae/api/fixture/TagFixture.java similarity index 78% rename from back/src/test/java/sellerlee/back/fixture/TagFixture.java rename to back/api/src/test/java/com/jikgorae/api/fixture/TagFixture.java index bdc07d67..6eec441a 100644 --- a/back/src/test/java/sellerlee/back/fixture/TagFixture.java +++ b/back/api/src/test/java/com/jikgorae/api/fixture/TagFixture.java @@ -1,6 +1,6 @@ -package sellerlee.back.fixture; +package com.jikgorae.api.fixture; -import sellerlee.back.article.domain.Tag; +import com.jikgorae.api.article.domain.Tag; public class TagFixture { public static final Tag TAG_FIXTURE1 = new Tag("tag 1-1"); diff --git a/back/api/src/test/java/com/jikgorae/api/fixture/TradeFixture.java b/back/api/src/test/java/com/jikgorae/api/fixture/TradeFixture.java new file mode 100644 index 00000000..20b88798 --- /dev/null +++ b/back/api/src/test/java/com/jikgorae/api/fixture/TradeFixture.java @@ -0,0 +1,9 @@ +package com.jikgorae.api.fixture; + +import com.jikgorae.api.trade.domain.Trade; + +public class TradeFixture { + public static Trade TRADE1 = new Trade(51L, ArticleFixture.ARTICLE1, MemberFixture.MEMBER1, MemberFixture.MEMBER2); + public static Trade TRADE2 = new Trade(52L, ArticleFixture.ARTICLE2, MemberFixture.MEMBER1, MemberFixture.MEMBER2); + public static Trade TRADE3 = new Trade(53L, ArticleFixture.ARTICLE3, MemberFixture.MEMBER2, MemberFixture.MEMBER1); +} diff --git a/back/src/test/java/sellerlee/back/member/acceptance/MemberAcceptanceTest.java b/back/api/src/test/java/com/jikgorae/api/member/acceptance/MemberAcceptanceTest.java similarity index 82% rename from back/src/test/java/sellerlee/back/member/acceptance/MemberAcceptanceTest.java rename to back/api/src/test/java/com/jikgorae/api/member/acceptance/MemberAcceptanceTest.java index d143687c..feb5fa74 100644 --- a/back/src/test/java/sellerlee/back/member/acceptance/MemberAcceptanceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/member/acceptance/MemberAcceptanceTest.java @@ -1,13 +1,12 @@ -package sellerlee.back.member.acceptance; +package com.jikgorae.api.member.acceptance; +import static com.jikgorae.api.fixture.MemberFixture.*; +import static com.jikgorae.api.member.presentation.AuthController.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.DynamicTest.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.member.presentation.AuthController.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; import java.util.stream.Stream; @@ -17,9 +16,9 @@ import org.springframework.security.test.context.support.WithMockUser; import org.springframework.test.web.servlet.MvcResult; -import sellerlee.back.AcceptanceTest; -import sellerlee.back.member.application.TokenResponse; -import sellerlee.back.security.web.AuthorizationType; +import com.jikgorae.api.AcceptanceTest; +import com.jikgorae.api.member.application.TokenResponse; +import com.jikgorae.api.security.web.AuthorizationType; public class MemberAcceptanceTest extends AcceptanceTest { @@ -51,7 +50,7 @@ Stream manageMember() { private Boolean findNickname(TokenResponse token) throws Exception { MvcResult mvcResult = mockMvc.perform( - get(API_URI + MEMBER_URI) + get(MEMBER_API_URI) .header(AUTHORIZATION, String.format("%s %s", AuthorizationType.BEARER, token.getAccessToken())) .param("nickname", MEMBER1.getNickname())) diff --git a/back/src/test/java/sellerlee/back/member/application/MemberServiceTest.java b/back/api/src/test/java/com/jikgorae/api/member/application/MemberServiceTest.java similarity index 88% rename from back/src/test/java/sellerlee/back/member/application/MemberServiceTest.java rename to back/api/src/test/java/com/jikgorae/api/member/application/MemberServiceTest.java index 04d536d9..e13354e8 100644 --- a/back/src/test/java/sellerlee/back/member/application/MemberServiceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/member/application/MemberServiceTest.java @@ -1,8 +1,9 @@ -package sellerlee.back.member.application; +package com.jikgorae.api.member.application; +import static com.jikgorae.api.fixture.MemberFixture.*; import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import static sellerlee.back.fixture.MemberFixture.*; import java.util.Optional; @@ -14,7 +15,7 @@ import org.mockito.junit.jupiter.MockitoExtension; import com.fasterxml.jackson.core.JsonProcessingException; -import sellerlee.back.member.domain.MemberRepository; +import com.jikgorae.common.member.domain.MemberRepository; @ExtendWith(value = MockitoExtension.class) class MemberServiceTest { diff --git a/back/src/test/java/sellerlee/back/member/domain/MemberTest.java b/back/api/src/test/java/com/jikgorae/api/member/domain/MemberTest.java similarity index 72% rename from back/src/test/java/sellerlee/back/member/domain/MemberTest.java rename to back/api/src/test/java/com/jikgorae/api/member/domain/MemberTest.java index 8b12d02b..4bf9b886 100644 --- a/back/src/test/java/sellerlee/back/member/domain/MemberTest.java +++ b/back/api/src/test/java/com/jikgorae/api/member/domain/MemberTest.java @@ -1,9 +1,12 @@ -package sellerlee.back.member.domain; +package com.jikgorae.api.member.domain; import static org.assertj.core.api.Assertions.*; import org.junit.jupiter.api.Test; +import com.jikgorae.common.member.domain.Member; +import com.jikgorae.common.member.domain.State; + class MemberTest { @Test void update() { diff --git a/back/src/test/java/sellerlee/back/member/presentation/AuthAdviceControllerTest.java b/back/api/src/test/java/com/jikgorae/api/member/presentation/AuthAdviceControllerTest.java similarity index 95% rename from back/src/test/java/sellerlee/back/member/presentation/AuthAdviceControllerTest.java rename to back/api/src/test/java/com/jikgorae/api/member/presentation/AuthAdviceControllerTest.java index c6ca1411..3028b570 100644 --- a/back/src/test/java/sellerlee/back/member/presentation/AuthAdviceControllerTest.java +++ b/back/api/src/test/java/com/jikgorae/api/member/presentation/AuthAdviceControllerTest.java @@ -1,12 +1,12 @@ -package sellerlee.back.member.presentation; +package com.jikgorae.api.member.presentation; import org.junit.jupiter.api.extension.ExtendWith; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.restdocs.RestDocumentationExtension; -import sellerlee.back.ControllerTest; -import sellerlee.back.member.application.MemberService; +import com.jikgorae.api.ControllerTest; +import com.jikgorae.api.member.application.MemberService; @ExtendWith(RestDocumentationExtension.class) @WebMvcTest(controllers = {AuthController.class, AuthAdviceController.class}) diff --git a/back/src/test/java/sellerlee/back/member/presentation/AuthControllerTest.java b/back/api/src/test/java/com/jikgorae/api/member/presentation/AuthControllerTest.java similarity index 72% rename from back/src/test/java/sellerlee/back/member/presentation/AuthControllerTest.java rename to back/api/src/test/java/com/jikgorae/api/member/presentation/AuthControllerTest.java index a1aa58be..7499e80b 100644 --- a/back/src/test/java/sellerlee/back/member/presentation/AuthControllerTest.java +++ b/back/api/src/test/java/com/jikgorae/api/member/presentation/AuthControllerTest.java @@ -1,13 +1,12 @@ -package sellerlee.back.member.presentation; +package com.jikgorae.api.member.presentation; +import static com.jikgorae.api.member.presentation.AuthController.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; +import static com.jikgorae.api.security.web.context.TokenSecurityInterceptorTest.*; import static org.mockito.Mockito.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.member.presentation.AuthController.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; -import static sellerlee.back.security.web.context.TokenSecurityInterceptorTest.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -15,8 +14,8 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.security.test.context.support.WithMockUser; -import sellerlee.back.ControllerTest; -import sellerlee.back.member.application.MemberService; +import com.jikgorae.api.ControllerTest; +import com.jikgorae.api.member.application.MemberService; @WebMvcTest(controllers = AuthController.class) @WithMockUser @@ -32,7 +31,7 @@ void findNickname() throws Exception { // @formatter:off mockMvc .perform( - get(API_URI + MEMBER_URI) + get(MEMBER_API_URI) .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) .param("nickname","lxxjn0")) .andDo(print()) diff --git a/back/src/test/java/sellerlee/back/member/presentation/ProfileControllerTest.java b/back/api/src/test/java/com/jikgorae/api/member/presentation/ProfileControllerTest.java similarity index 85% rename from back/src/test/java/sellerlee/back/member/presentation/ProfileControllerTest.java rename to back/api/src/test/java/com/jikgorae/api/member/presentation/ProfileControllerTest.java index 63754d1f..cf7edda7 100644 --- a/back/src/test/java/sellerlee/back/member/presentation/ProfileControllerTest.java +++ b/back/api/src/test/java/com/jikgorae/api/member/presentation/ProfileControllerTest.java @@ -1,5 +1,10 @@ -package sellerlee.back.member.presentation; +package com.jikgorae.api.member.presentation; +import static com.jikgorae.api.fixture.MemberFixture.*; +import static com.jikgorae.api.member.presentation.ProfileController.*; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; +import static com.jikgorae.api.security.web.context.TokenSecurityInterceptorTest.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; import static org.springframework.restdocs.headers.HeaderDocumentation.*; import static org.springframework.restdocs.mockmvc.MockMvcRestDocumentation.*; @@ -7,11 +12,6 @@ import static org.springframework.restdocs.payload.PayloadDocumentation.*; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.common.PageController.*; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.member.presentation.ProfileController.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; -import static sellerlee.back.security.web.context.TokenSecurityInterceptorTest.*; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -19,8 +19,8 @@ import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.http.MediaType; -import sellerlee.back.ControllerTest; -import sellerlee.back.member.application.MemberService; +import com.jikgorae.api.ControllerTest; +import com.jikgorae.api.member.application.MemberService; @WebMvcTest(controllers = ProfileController.class) class ProfileControllerTest extends ControllerTest { @@ -31,7 +31,7 @@ class ProfileControllerTest extends ControllerTest { @Test void show() throws Exception { mockMvc.perform( - get(API_URI + PROFILE_URI) + get(PROFILE_API_URI) .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER)) .andExpect(status().isOk()) .andDo( @@ -57,7 +57,7 @@ void update() throws Exception { doNothing().when(memberService).update(any(), any()); mockMvc.perform( - put(API_URI + PROFILE_URI) + put(PROFILE_API_URI) .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER) .contentType(MediaType.APPLICATION_JSON) .content(request)) diff --git a/back/src/test/java/sellerlee/back/security/config/SecurityConfigTest.java b/back/api/src/test/java/com/jikgorae/api/security/config/SecurityConfigTest.java similarity index 96% rename from back/src/test/java/sellerlee/back/security/config/SecurityConfigTest.java rename to back/api/src/test/java/com/jikgorae/api/security/config/SecurityConfigTest.java index 69ebe66b..a3ab1a42 100644 --- a/back/src/test/java/sellerlee/back/security/config/SecurityConfigTest.java +++ b/back/api/src/test/java/com/jikgorae/api/security/config/SecurityConfigTest.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.config; +package com.jikgorae.api.security.config; import static io.restassured.RestAssured.*; import static org.hamcrest.Matchers.*; diff --git a/back/src/test/java/sellerlee/back/security/web/context/TokenSecurityInterceptorTest.java b/back/api/src/test/java/com/jikgorae/api/security/web/context/TokenSecurityInterceptorTest.java similarity index 85% rename from back/src/test/java/sellerlee/back/security/web/context/TokenSecurityInterceptorTest.java rename to back/api/src/test/java/com/jikgorae/api/security/web/context/TokenSecurityInterceptorTest.java index 1e47b51c..fa22416e 100644 --- a/back/src/test/java/sellerlee/back/security/web/context/TokenSecurityInterceptorTest.java +++ b/back/api/src/test/java/com/jikgorae/api/security/web/context/TokenSecurityInterceptorTest.java @@ -1,9 +1,10 @@ -package sellerlee.back.security.web.context; +package com.jikgorae.api.security.web.context; +import static com.jikgorae.api.security.oauth2.authentication.AuthorizationExtractor.*; +import static com.jikgorae.api.security.web.AuthorizationType.*; import static org.assertj.core.api.Assertions.*; +import static org.mockito.ArgumentMatchers.*; import static org.mockito.Mockito.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; -import static sellerlee.back.security.web.AuthorizationType.*; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -14,8 +15,8 @@ import org.springframework.mock.web.MockHttpServletRequest; import org.springframework.mock.web.MockHttpServletResponse; -import sellerlee.back.security.oauth2.token.JwtTokenProvider; -import sellerlee.back.security.web.AuthenticationException; +import com.jikgorae.api.security.oauth2.token.JwtTokenProvider; +import com.jikgorae.common.security.web.AuthenticationException; @SpringBootTest public class TokenSecurityInterceptorTest { diff --git a/back/src/test/java/sellerlee/back/trade/application/TradeServiceTest.java b/back/api/src/test/java/com/jikgorae/api/trade/application/TradeServiceTest.java similarity index 60% rename from back/src/test/java/sellerlee/back/trade/application/TradeServiceTest.java rename to back/api/src/test/java/com/jikgorae/api/trade/application/TradeServiceTest.java index a0931537..3a29b286 100644 --- a/back/src/test/java/sellerlee/back/trade/application/TradeServiceTest.java +++ b/back/api/src/test/java/com/jikgorae/api/trade/application/TradeServiceTest.java @@ -1,24 +1,5 @@ -package sellerlee.back.trade.application; +package com.jikgorae.api.trade.application; -import static org.assertj.core.api.Assertions.*; -import static org.mockito.Mockito.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; -import static sellerlee.back.fixture.TradeFixture.*; - -import java.util.List; - -import org.assertj.core.util.Lists; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.extension.ExtendWith; -import org.mockito.Mock; -import org.mockito.junit.jupiter.MockitoExtension; - -import sellerlee.back.article.application.ArticleCardResponse; -import sellerlee.back.article.domain.Article; -import sellerlee.back.trade.domain.TradeRepository; // TODO: 2020/08/25 Trade 현재 구현 안됨 // @ExtendWith(MockitoExtension.class) // class TradeServiceTest { diff --git a/back/api/src/test/java/com/jikgorae/api/trade/presentation/TradeControllerTest.java b/back/api/src/test/java/com/jikgorae/api/trade/presentation/TradeControllerTest.java new file mode 100644 index 00000000..f6d2e24c --- /dev/null +++ b/back/api/src/test/java/com/jikgorae/api/trade/presentation/TradeControllerTest.java @@ -0,0 +1,23 @@ +package com.jikgorae.api.trade.presentation; + +// TODO: 2020/08/25 Trade 현재 구현 안됨 +// @WebMvcTest(controllers = TradeController.class) +// class TradeControllerTest extends ControllerTest { +// @MockBean +// private TradeService tradeService; +// +// @DisplayName("거래 완료 게시글 요청 시 필요한 정보를 담은 목록을 반환한다.") +// @Test +// void showAll() throws Exception { +// when(tradeService.showAll(any())).thenReturn( +// ArticleCardResponse.listOf(Arrays.asList(ARTICLE1, ARTICLE2, ARTICLE3))); +// +// // @formatter:off +// mockMvc +// .perform( +// get(ORDER_URI) +// .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER)) +// .andExpect(status().isOk()); +// // @formatter:on +// } +// } diff --git a/back/src/test/resources/application.yml b/back/api/src/test/resources/application.yml similarity index 100% rename from back/src/test/resources/application.yml rename to back/api/src/test/resources/application.yml diff --git a/back/src/test/resources/truncate.sql b/back/api/src/test/resources/truncate.sql similarity index 100% rename from back/src/test/resources/truncate.sql rename to back/api/src/test/resources/truncate.sql diff --git a/back/build.gradle b/back/build.gradle index 49aa8c29..58923103 100644 --- a/back/build.gradle +++ b/back/build.gradle @@ -1,132 +1,36 @@ plugins { + id 'java' id 'org.springframework.boot' version '2.3.1.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' - id 'java' id "org.asciidoctor.convert" version "1.5.9.2" } -configurations { - developmentOnly - runtimeClasspath { - extendsFrom developmentOnly - } - compileOnly { - extendsFrom annotationProcessor - } +allprojects { + group = 'com.jikgorae' + version = '0.0.1-SNAPSHOT' } -// QueryDSL Version -def queryDSLVersion = '4.2.2' -// QueryDSL PATH -def generated = "src/main/generated" +subprojects { + apply plugin: 'java' + apply plugin: 'org.springframework.boot' + apply plugin: 'io.spring.dependency-management' + apply plugin: 'org.asciidoctor.convert' -group = 'sellerlee' -version = '0.0.1-SNAPSHOT' -sourceCompatibility = '1.8' + sourceCompatibility = '1.8' -repositories { - mavenCentral() -} - -dependencies { - // spring - implementation 'org.springframework.boot:spring-boot-starter-web' - implementation 'org.springframework.boot:spring-boot-starter-data-jpa' - implementation 'org.springframework.boot:spring-boot-starter-validation' - implementation 'org.springframework.boot:spring-boot-starter-security' - implementation 'org.springframework.boot:spring-boot-starter-oauth2-client' - annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' - testImplementation('org.springframework.boot:spring-boot-starter-test') { - exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' + repositories { + mavenCentral() } - - // queryDSL - implementation "com.querydsl:querydsl-core:${queryDSLVersion}" - implementation "com.querydsl:querydsl-jpa:${queryDSLVersion}" - implementation "com.querydsl:querydsl-apt:${queryDSLVersion}" - annotationProcessor( - "com.querydsl:querydsl-apt:${queryDSLVersion}:jpa", - "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final", - "javax.annotation:javax.annotation-api", - ) - // documentation - testImplementation 'org.springframework.restdocs:spring-restdocs-mockmvc' - asciidoctor 'org.springframework.restdocs:spring-restdocs-asciidoctor' - //httpClientBuilder - implementation 'org.apache.httpcomponents:httpclient:4.5' - // jwt - implementation 'io.jsonwebtoken:jjwt:0.9.1' - // apache - implementation 'org.apache.commons:commons-lang3:3.10' - // flyway - implementation 'org.flywaydb:flyway-core' - // mariaDB - runtimeOnly 'org.mariadb.jdbc:mariadb-java-client' - // h2 - testImplementation 'com.h2database:h2' - // rest assured - testImplementation 'io.rest-assured:rest-assured:3.3.0' - // security test - testImplementation 'org.springframework.security:spring-security-test' -} - -sourceSets { - main.java.srcDirs += [ generated ] -} - -tasks.withType(JavaCompile) { - options.annotationProcessorGeneratedSourcesDirectory = file(generated) -} - -clean.doLast { - file(generated).deleteDir() -} - -test { - useJUnitPlatform() -} - -ext { - snippetsDir = file('build/generated-snippets') -} - -test { - outputs.dir snippetsDir -} - -asciidoctor { - inputs.dir snippetsDir - dependsOn test -} - -bootJar { - dependsOn asciidoctor - from("${asciidoctor.outputDir}/html5") { - into 'static/docs' - } -} - -processResources.dependsOn('copyDatabaseSecret') - -task copyDatabaseSecret { - dependsOn 'copyDatabaseSecretMain' - dependsOn 'copyDatabaseSecretTest' } -task copyDatabaseSecretMain(type: Copy) { - from('../seller-lee-secret') { - include 'application-common.yml' - include 'application-security.yml' - include 'application-dev.yml' - include 'application-local.yml' - include 'application-prod.yml' +project(':api') { + dependencies { + implementation project(':common') } - into 'src/main/resources' } -task copyDatabaseSecretTest(type: Copy) { - from('../seller-lee-secret') { - include 'application-security.yml' +project(':chat') { + dependencies { + implementation project(':common') } - into 'src/test/resources' } diff --git a/back/chat/build.gradle b/back/chat/build.gradle new file mode 100644 index 00000000..c70edfcd --- /dev/null +++ b/back/chat/build.gradle @@ -0,0 +1,8 @@ +dependencies { + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-websocket' + testImplementation('org.springframework.boot:spring-boot-starter-test') { + exclude group: 'org.junit.vintage', module: 'junit-vintage-engine' + } +} diff --git a/back/chat/src/main/java/com/jikgorae/chat/ChatApplication.java b/back/chat/src/main/java/com/jikgorae/chat/ChatApplication.java new file mode 100644 index 00000000..e0a1f928 --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/ChatApplication.java @@ -0,0 +1,12 @@ +package com.jikgorae.chat; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication +public class ChatApplication { + + public static void main(String[] args) { + SpringApplication.run(ChatApplication.class, args); + } +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/config/WebSockConfig.java b/back/chat/src/main/java/com/jikgorae/chat/config/WebSockConfig.java new file mode 100644 index 00000000..c7b5d1ee --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/config/WebSockConfig.java @@ -0,0 +1,23 @@ +package com.jikgorae.chat.config; + +import org.springframework.context.annotation.Configuration; +import org.springframework.messaging.simp.config.MessageBrokerRegistry; +import org.springframework.web.socket.config.annotation.EnableWebSocketMessageBroker; +import org.springframework.web.socket.config.annotation.StompEndpointRegistry; +import org.springframework.web.socket.config.annotation.WebSocketMessageBrokerConfigurer; + +@Configuration +@EnableWebSocketMessageBroker +public class WebSockConfig implements WebSocketMessageBrokerConfigurer { + + @Override + public void configureMessageBroker(MessageBrokerRegistry config) { + config.enableSimpleBroker("/sub"); + config.setApplicationDestinationPrefixes("/pub"); + } + + @Override + public void registerStompEndpoints(StompEndpointRegistry registry) { + registry.addEndpoint("/chat").setAllowedOrigins("*"); + } +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/message/application/MessageDto.java b/back/chat/src/main/java/com/jikgorae/chat/message/application/MessageDto.java new file mode 100644 index 00000000..e2078fb6 --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/message/application/MessageDto.java @@ -0,0 +1,33 @@ +package com.jikgorae.chat.message.application; + +import com.jikgorae.chat.message.domain.MessageType; + +public class MessageDto { + private final String roomId; + private final MessageType messageType; + private final String sender; + private final String message; + + public MessageDto(String roomId, MessageType messageType, String sender, String message) { + this.roomId = roomId; + this.messageType = messageType; + this.sender = sender; + this.message = message; + } + + public String getRoomId() { + return roomId; + } + + public MessageType getMessageType() { + return messageType; + } + + public String getSender() { + return sender; + } + + public String getMessage() { + return message; + } +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/message/domain/MessageDtoHandlingService.java b/back/chat/src/main/java/com/jikgorae/chat/message/domain/MessageDtoHandlingService.java new file mode 100644 index 00000000..99c3548e --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/message/domain/MessageDtoHandlingService.java @@ -0,0 +1,14 @@ +package com.jikgorae.chat.message.domain; + +import org.springframework.stereotype.Service; + +import com.jikgorae.chat.message.application.MessageDto; + +@Service +public class MessageDtoHandlingService { + public MessageDto handle(MessageDto request) { + String message = MessageType.of(request).getMessage(request); + return new MessageDto(request.getRoomId(), request.getMessageType(), request.getSender(), + message); + } +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/message/domain/MessageType.java b/back/chat/src/main/java/com/jikgorae/chat/message/domain/MessageType.java new file mode 100644 index 00000000..4fffeab1 --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/message/domain/MessageType.java @@ -0,0 +1,28 @@ +package com.jikgorae.chat.message.domain; + +import java.util.Arrays; +import java.util.function.Function; + +import com.jikgorae.chat.message.application.MessageDto; + +public enum MessageType { + ENTER(messageDto -> messageDto.getSender() + "님이 입장 하셨습니다."), + TALK(MessageDto::getMessage); + + private final Function message; + + MessageType(Function message) { + this.message = message; + } + + public static MessageType of(MessageDto request) { + return Arrays.stream(values()) + .filter(value -> value.equals(request.getMessageType())) + .findFirst() + .orElseThrow(AssertionError::new); + } + + public String getMessage(MessageDto messageDto) { + return message.apply(messageDto); + } +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/message/presentation/MessageController.java b/back/chat/src/main/java/com/jikgorae/chat/message/presentation/MessageController.java new file mode 100644 index 00000000..25cda856 --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/message/presentation/MessageController.java @@ -0,0 +1,26 @@ +package com.jikgorae.chat.message.presentation; + +import org.springframework.messaging.handler.annotation.MessageMapping; +import org.springframework.messaging.simp.SimpMessageSendingOperations; +import org.springframework.stereotype.Controller; + +import com.jikgorae.chat.message.application.MessageDto; +import com.jikgorae.chat.message.domain.MessageDtoHandlingService; + +@Controller +public class MessageController { + private final SimpMessageSendingOperations messagingTemplate; + private final MessageDtoHandlingService messageDtoHandlingService; + + public MessageController(SimpMessageSendingOperations messagingTemplate, + MessageDtoHandlingService messageDtoHandlingService) { + this.messagingTemplate = messagingTemplate; + this.messageDtoHandlingService = messageDtoHandlingService; + } + + @MessageMapping("/chat/message") + public void message(MessageDto request) { + MessageDto response = messageDtoHandlingService.handle(request); + messagingTemplate.convertAndSend("/sub/chat/room/" + request.getRoomId(), response); + } +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/room/application/RoomResponse.java b/back/chat/src/main/java/com/jikgorae/chat/room/application/RoomResponse.java new file mode 100644 index 00000000..bd233de5 --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/room/application/RoomResponse.java @@ -0,0 +1,35 @@ +package com.jikgorae.chat.room.application; + +import static java.util.stream.Collectors.*; + +import java.util.List; + +import com.jikgorae.chat.room.domain.Room; + +public class RoomResponse { + private Long roomId; + private String name; + + public RoomResponse(Long roomId, String name) { + this.roomId = roomId; + this.name = name; + } + + public static RoomResponse of(Room room) { + return new RoomResponse(room.getRoomId(), room.getName()); + } + + public static List listOf(List rooms) { + return rooms.stream() + .map(RoomResponse::of) + .collect(toList()); + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/room/application/RoomService.java b/back/chat/src/main/java/com/jikgorae/chat/room/application/RoomService.java new file mode 100644 index 00000000..6f9fe035 --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/room/application/RoomService.java @@ -0,0 +1,33 @@ +package com.jikgorae.chat.room.application; + +import java.util.List; +import java.util.NoSuchElementException; + +import org.springframework.stereotype.Service; + +import com.jikgorae.chat.room.domain.Room; +import com.jikgorae.chat.room.domain.RoomRepository; + +@Service +public class RoomService { + private final RoomRepository roomRepository; + + public RoomService(RoomRepository roomRepository) { + this.roomRepository = roomRepository; + } + + public Long create(String name) { + return roomRepository.save(new Room(name)).getRoomId(); + } + + public List showAll() { + List rooms = roomRepository.findAll(); + return RoomResponse.listOf(rooms); + } + + public RoomResponse show(Long roomId) { + Room room = roomRepository.findById(roomId) + .orElseThrow(NoSuchElementException::new); + return RoomResponse.of(room); + } +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/room/domain/Room.java b/back/chat/src/main/java/com/jikgorae/chat/room/domain/Room.java new file mode 100644 index 00000000..e0c1f24f --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/room/domain/Room.java @@ -0,0 +1,34 @@ +package com.jikgorae.chat.room.domain; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Room { + @Id + @GeneratedValue + private Long roomId; + + private String name; + + protected Room() { + } + + public Room(Long roomId, String name) { + this.roomId = roomId; + this.name = name; + } + + public Room(String name) { + this(null, name); + } + + public Long getRoomId() { + return roomId; + } + + public String getName() { + return name; + } +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/room/domain/RoomRepository.java b/back/chat/src/main/java/com/jikgorae/chat/room/domain/RoomRepository.java new file mode 100644 index 00000000..dbb7f3a9 --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/room/domain/RoomRepository.java @@ -0,0 +1,6 @@ +package com.jikgorae.chat.room.domain; + +import org.springframework.data.jpa.repository.JpaRepository; + +public interface RoomRepository extends JpaRepository { +} \ No newline at end of file diff --git a/back/chat/src/main/java/com/jikgorae/chat/room/presentation/RoomController.java b/back/chat/src/main/java/com/jikgorae/chat/room/presentation/RoomController.java new file mode 100644 index 00000000..37c6bdcc --- /dev/null +++ b/back/chat/src/main/java/com/jikgorae/chat/room/presentation/RoomController.java @@ -0,0 +1,45 @@ +package com.jikgorae.chat.room.presentation; + +import static com.jikgorae.chat.room.presentation.RoomController.*; + +import java.net.URI; +import java.util.List; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import com.jikgorae.chat.room.application.RoomResponse; +import com.jikgorae.chat.room.application.RoomService; + +@RestController +@RequestMapping(ROOM_URI) +public class RoomController { + public static final String ROOM_URI = "/chat/rooms"; + + private final RoomService roomService; + + public RoomController(RoomService roomService) { + this.roomService = roomService; + } + + @GetMapping + public ResponseEntity> showAll() { + return ResponseEntity.ok(roomService.showAll()); + } + + @PostMapping + public ResponseEntity createRoom(@RequestParam String name) { + Long roomId = roomService.create(name); + return ResponseEntity.created(URI.create(ROOM_URI + "/" + roomId)).build(); + } + + @GetMapping("/{roomId}") + public ResponseEntity show(@PathVariable Long roomId) { + return ResponseEntity.ok(roomService.show(roomId)); + } +} \ No newline at end of file diff --git a/back/chat/src/main/resources/application.yml b/back/chat/src/main/resources/application.yml new file mode 100644 index 00000000..c3e22e54 --- /dev/null +++ b/back/chat/src/main/resources/application.yml @@ -0,0 +1,13 @@ +spring: + + jpa: + generate-ddl: true + show-sql: true + hibernate: + ddl-auto: create-drop + properties: + hibernate.format_sql: true + use_sql_comments: true + +server: + port: 8000 \ No newline at end of file diff --git a/back/chat/src/test/java/com/jikgorae/api/ChatApplicationTests.java b/back/chat/src/test/java/com/jikgorae/api/ChatApplicationTests.java new file mode 100644 index 00000000..bb6a6687 --- /dev/null +++ b/back/chat/src/test/java/com/jikgorae/api/ChatApplicationTests.java @@ -0,0 +1,13 @@ +package com.jikgorae.api; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class ChatApplicationTests { + + @Test + void contextLoads() { + } + +} \ No newline at end of file diff --git a/back/common/build.gradle b/back/common/build.gradle new file mode 100644 index 00000000..0a41db2f --- /dev/null +++ b/back/common/build.gradle @@ -0,0 +1,55 @@ +bootJar { + enabled = false +} + +jar { + enabled = true +} + +// QueryDSL Version +def queryDSLVersion = '4.2.2' +// QueryDSL PATH +def generated = "src/main/generated" + +configurations { + developmentOnly + runtimeClasspath { + extendsFrom developmentOnly + } + compileOnly { + extendsFrom annotationProcessor + } +} + +dependencies { + // spring + implementation 'org.springframework.boot:spring-boot-starter-web' + implementation 'org.springframework.boot:spring-boot-starter-data-jpa' + implementation 'org.springframework.boot:spring-boot-starter-validation' + annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor' + + // queryDSL + implementation "com.querydsl:querydsl-core:${queryDSLVersion}" + implementation "com.querydsl:querydsl-jpa:${queryDSLVersion}" + implementation "com.querydsl:querydsl-apt:${queryDSLVersion}" + annotationProcessor( + "com.querydsl:querydsl-apt:${queryDSLVersion}:jpa", + "org.hibernate.javax.persistence:hibernate-jpa-2.1-api:1.0.2.Final", + "javax.annotation:javax.annotation-api", + ) + + // apache + implementation 'org.apache.commons:commons-lang3:3.10' +} + +sourceSets { + main.java.srcDirs += [ generated ] +} + +tasks.withType(JavaCompile) { + options.annotationProcessorGeneratedSourcesDirectory = file(generated) +} + +clean.doLast { + file(generated).deleteDir() +} diff --git a/back/src/main/java/sellerlee/back/common/domain/BaseTimeEntity.java b/back/common/src/main/java/com/jikgorae/common/BaseTimeEntity.java similarity index 94% rename from back/src/main/java/sellerlee/back/common/domain/BaseTimeEntity.java rename to back/common/src/main/java/com/jikgorae/common/BaseTimeEntity.java index df305768..de58fa07 100644 --- a/back/src/main/java/sellerlee/back/common/domain/BaseTimeEntity.java +++ b/back/common/src/main/java/com/jikgorae/common/BaseTimeEntity.java @@ -1,4 +1,4 @@ -package sellerlee.back.common.domain; +package com.jikgorae.common; import java.time.LocalDateTime; diff --git a/back/src/main/java/sellerlee/back/member/domain/IllegalJoinException.java b/back/common/src/main/java/com/jikgorae/common/member/domain/IllegalJoinException.java similarity index 77% rename from back/src/main/java/sellerlee/back/member/domain/IllegalJoinException.java rename to back/common/src/main/java/com/jikgorae/common/member/domain/IllegalJoinException.java index abc078f6..15d10f23 100644 --- a/back/src/main/java/sellerlee/back/member/domain/IllegalJoinException.java +++ b/back/common/src/main/java/com/jikgorae/common/member/domain/IllegalJoinException.java @@ -1,4 +1,4 @@ -package sellerlee.back.member.domain; +package com.jikgorae.common.member.domain; public class IllegalJoinException extends RuntimeException { public IllegalJoinException(String message) { diff --git a/back/src/main/java/sellerlee/back/member/domain/IllegalLoginException.java b/back/common/src/main/java/com/jikgorae/common/member/domain/IllegalLoginException.java similarity index 76% rename from back/src/main/java/sellerlee/back/member/domain/IllegalLoginException.java rename to back/common/src/main/java/com/jikgorae/common/member/domain/IllegalLoginException.java index b51371e0..a9d58964 100644 --- a/back/src/main/java/sellerlee/back/member/domain/IllegalLoginException.java +++ b/back/common/src/main/java/com/jikgorae/common/member/domain/IllegalLoginException.java @@ -1,4 +1,4 @@ -package sellerlee.back.member.domain; +package com.jikgorae.common.member.domain; public class IllegalLoginException extends IllegalArgumentException { public IllegalLoginException(String s) { diff --git a/back/src/main/java/sellerlee/back/member/domain/Member.java b/back/common/src/main/java/com/jikgorae/common/member/domain/Member.java similarity index 98% rename from back/src/main/java/sellerlee/back/member/domain/Member.java rename to back/common/src/main/java/com/jikgorae/common/member/domain/Member.java index 475d1a36..472b1232 100644 --- a/back/src/main/java/sellerlee/back/member/domain/Member.java +++ b/back/common/src/main/java/com/jikgorae/common/member/domain/Member.java @@ -1,4 +1,4 @@ -package sellerlee.back.member.domain; +package com.jikgorae.common.member.domain; import javax.persistence.Column; import javax.persistence.Entity; diff --git a/back/src/main/java/sellerlee/back/member/domain/MemberRepository.java b/back/common/src/main/java/com/jikgorae/common/member/domain/MemberRepository.java similarity index 90% rename from back/src/main/java/sellerlee/back/member/domain/MemberRepository.java rename to back/common/src/main/java/com/jikgorae/common/member/domain/MemberRepository.java index cbfb5f8d..e0f7fe08 100644 --- a/back/src/main/java/sellerlee/back/member/domain/MemberRepository.java +++ b/back/common/src/main/java/com/jikgorae/common/member/domain/MemberRepository.java @@ -1,4 +1,4 @@ -package sellerlee.back.member.domain; +package com.jikgorae.common.member.domain; import java.util.Optional; diff --git a/back/src/main/java/sellerlee/back/member/domain/RefreshTokenException.java b/back/common/src/main/java/com/jikgorae/common/member/domain/RefreshTokenException.java similarity index 77% rename from back/src/main/java/sellerlee/back/member/domain/RefreshTokenException.java rename to back/common/src/main/java/com/jikgorae/common/member/domain/RefreshTokenException.java index fc14287c..2ea42921 100644 --- a/back/src/main/java/sellerlee/back/member/domain/RefreshTokenException.java +++ b/back/common/src/main/java/com/jikgorae/common/member/domain/RefreshTokenException.java @@ -1,4 +1,4 @@ -package sellerlee.back.member.domain; +package com.jikgorae.common.member.domain; public class RefreshTokenException extends RuntimeException { public RefreshTokenException(String message) { diff --git a/back/src/main/java/sellerlee/back/member/domain/State.java b/back/common/src/main/java/com/jikgorae/common/member/domain/State.java similarity index 52% rename from back/src/main/java/sellerlee/back/member/domain/State.java rename to back/common/src/main/java/com/jikgorae/common/member/domain/State.java index fc0a1cae..da281b49 100644 --- a/back/src/main/java/sellerlee/back/member/domain/State.java +++ b/back/common/src/main/java/com/jikgorae/common/member/domain/State.java @@ -1,4 +1,4 @@ -package sellerlee.back.member.domain; +package com.jikgorae.common.member.domain; public enum State { NOT_JOIN, diff --git a/back/src/main/java/sellerlee/back/security/core/LoginMember.java b/back/common/src/main/java/com/jikgorae/common/security/core/LoginMember.java similarity index 85% rename from back/src/main/java/sellerlee/back/security/core/LoginMember.java rename to back/common/src/main/java/com/jikgorae/common/security/core/LoginMember.java index 81c4751b..046d3953 100644 --- a/back/src/main/java/sellerlee/back/security/core/LoginMember.java +++ b/back/common/src/main/java/com/jikgorae/common/security/core/LoginMember.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.core; +package com.jikgorae.common.security.core; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; diff --git a/back/src/main/java/sellerlee/back/security/web/AuthenticationException.java b/back/common/src/main/java/com/jikgorae/common/security/web/AuthenticationException.java similarity index 82% rename from back/src/main/java/sellerlee/back/security/web/AuthenticationException.java rename to back/common/src/main/java/com/jikgorae/common/security/web/AuthenticationException.java index f034fa33..a28a5692 100644 --- a/back/src/main/java/sellerlee/back/security/web/AuthenticationException.java +++ b/back/common/src/main/java/com/jikgorae/common/security/web/AuthenticationException.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.web; +package com.jikgorae.common.security.web; public class AuthenticationException extends RuntimeException { public AuthenticationException() { diff --git a/back/src/main/java/sellerlee/back/security/web/LoginMemberMethodArgumentResolver.java b/back/common/src/main/java/com/jikgorae/common/security/web/LoginMemberMethodArgumentResolver.java similarity index 89% rename from back/src/main/java/sellerlee/back/security/web/LoginMemberMethodArgumentResolver.java rename to back/common/src/main/java/com/jikgorae/common/security/web/LoginMemberMethodArgumentResolver.java index e0d333a2..aaf42df6 100644 --- a/back/src/main/java/sellerlee/back/security/web/LoginMemberMethodArgumentResolver.java +++ b/back/common/src/main/java/com/jikgorae/common/security/web/LoginMemberMethodArgumentResolver.java @@ -1,4 +1,4 @@ -package sellerlee.back.security.web; +package com.jikgorae.common.security.web; import static org.springframework.web.context.request.RequestAttributes.*; @@ -10,9 +10,9 @@ import org.springframework.web.method.support.HandlerMethodArgumentResolver; import org.springframework.web.method.support.ModelAndViewContainer; -import sellerlee.back.member.domain.IllegalLoginException; -import sellerlee.back.member.domain.MemberRepository; -import sellerlee.back.security.core.LoginMember; +import com.jikgorae.common.member.domain.IllegalLoginException; +import com.jikgorae.common.member.domain.MemberRepository; +import com.jikgorae.common.security.core.LoginMember; @Component public class LoginMemberMethodArgumentResolver implements HandlerMethodArgumentResolver { diff --git a/back/settings.gradle b/back/settings.gradle index 26ce0813..98ec53b0 100644 --- a/back/settings.gradle +++ b/back/settings.gradle @@ -1 +1,5 @@ rootProject.name = 'back' +include 'common' +include 'api' +include 'chat' + diff --git a/back/src/main/java/sellerlee/back/common/config/JpaConfig.java b/back/src/main/java/sellerlee/back/common/config/JpaConfig.java deleted file mode 100644 index 50b8c5bc..00000000 --- a/back/src/main/java/sellerlee/back/common/config/JpaConfig.java +++ /dev/null @@ -1,9 +0,0 @@ -package sellerlee.back.common.config; - -import org.springframework.context.annotation.Configuration; -import org.springframework.data.jpa.repository.config.EnableJpaAuditing; - -@Configuration -@EnableJpaAuditing -public class JpaConfig { -} diff --git a/back/src/test/java/sellerlee/back/fixture/FavoriteFixture.java b/back/src/test/java/sellerlee/back/fixture/FavoriteFixture.java deleted file mode 100644 index 47a69da3..00000000 --- a/back/src/test/java/sellerlee/back/fixture/FavoriteFixture.java +++ /dev/null @@ -1,11 +0,0 @@ -package sellerlee.back.fixture; - -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; - -import sellerlee.back.favorite.domain.Favorite; - -public class FavoriteFixture { - public static final Favorite FAVORITE1 = new Favorite(51L, ARTICLE1, MEMBER1); - public static final Favorite FAVORITE2 = new Favorite(52L, ARTICLE2, MEMBER2); -} diff --git a/back/src/test/java/sellerlee/back/fixture/TradeFixture.java b/back/src/test/java/sellerlee/back/fixture/TradeFixture.java deleted file mode 100644 index 8c0704b1..00000000 --- a/back/src/test/java/sellerlee/back/fixture/TradeFixture.java +++ /dev/null @@ -1,12 +0,0 @@ -package sellerlee.back.fixture; - -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.fixture.MemberFixture.*; - -import sellerlee.back.trade.domain.Trade; - -public class TradeFixture { - public static Trade TRADE1 = new Trade(51L, ARTICLE1, MEMBER1, MEMBER2); - public static Trade TRADE2 = new Trade(52L, ARTICLE2, MEMBER1, MEMBER2); - public static Trade TRADE3 = new Trade(53L, ARTICLE3, MEMBER2, MEMBER1); -} diff --git a/back/src/test/java/sellerlee/back/trade/presentation/TradeControllerTest.java b/back/src/test/java/sellerlee/back/trade/presentation/TradeControllerTest.java deleted file mode 100644 index c823ffc5..00000000 --- a/back/src/test/java/sellerlee/back/trade/presentation/TradeControllerTest.java +++ /dev/null @@ -1,42 +0,0 @@ -package sellerlee.back.trade.presentation; - -import static org.mockito.Mockito.*; -import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; -import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.*; -import static sellerlee.back.fixture.ArticleFixture.*; -import static sellerlee.back.security.oauth2.authentication.AuthorizationExtractor.*; -import static sellerlee.back.security.web.context.TokenSecurityInterceptorTest.*; -import static sellerlee.back.trade.presentation.TradeController.*; - -import java.util.Arrays; - -import org.junit.jupiter.api.DisplayName; -import org.junit.jupiter.api.Test; -import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; -import org.springframework.boot.test.mock.mockito.MockBean; - -import sellerlee.back.ControllerTest; -import sellerlee.back.article.application.ArticleCardResponse; -import sellerlee.back.trade.application.TradeService; - -// TODO: 2020/08/25 Trade 현재 구현 안됨 -// @WebMvcTest(controllers = TradeController.class) -// class TradeControllerTest extends ControllerTest { -// @MockBean -// private TradeService tradeService; -// -// @DisplayName("거래 완료 게시글 요청 시 필요한 정보를 담은 목록을 반환한다.") -// @Test -// void showAll() throws Exception { -// when(tradeService.showAll(any())).thenReturn( -// ArticleCardResponse.listOf(Arrays.asList(ARTICLE1, ARTICLE2, ARTICLE3))); -// -// // @formatter:off -// mockMvc -// .perform( -// get(ORDER_URI) -// .header(AUTHORIZATION, TEST_AUTHORIZATION_HEADER)) -// .andExpect(status().isOk()); -// // @formatter:on -// } -// } diff --git a/Dockerfile-mariadb b/docker/Dockerfile-mariadb similarity index 100% rename from Dockerfile-mariadb rename to docker/Dockerfile-mariadb diff --git a/Dockerfile-springboot b/docker/Dockerfile-springboot similarity index 79% rename from Dockerfile-springboot rename to docker/Dockerfile-springboot index 3b736dc8..5ce1b6ac 100644 --- a/Dockerfile-springboot +++ b/docker/Dockerfile-springboot @@ -4,7 +4,7 @@ VOLUME /tmp EXPOSE 8080 -ARG JAR_FILE=back/build/libs/back-0.0.1-SNAPSHOT.jar +ARG JAR_FILE=../back/api/build/libs/api-0.0.1-SNAPSHOT.jar ADD ${JAR_FILE} seller-lee-springboot.jar diff --git a/docker-compose-mariadb.yml b/docker/docker-compose-mariadb.yml similarity index 100% rename from docker-compose-mariadb.yml rename to docker/docker-compose-mariadb.yml diff --git a/docker-compose.yml b/docker/docker-compose.yml similarity index 100% rename from docker-compose.yml rename to docker/docker-compose.yml diff --git a/front/src/api/api.ts b/front/src/api/api.ts index 2125a010..18a9bb48 100644 --- a/front/src/api/api.ts +++ b/front/src/api/api.ts @@ -2,8 +2,11 @@ import axios from "axios"; import { DeviceStorage } from "../auth/DeviceStorage"; import { Score } from "../types/types"; -// const BASE_URL = "http://15.164.125.244:8080"; -const BASE_URL = "http://localhost:8080"; +// const SERVER_IP = "15.164.125.244"; +const SERVER_IP = "localhost"; + +const BASE_URL = `http://${SERVER_IP}:8080`; +const CHAT_BASE_URL = `http://${SERVER_IP}:8000`; export const KAKAO_LOGIN_API_URI = `${BASE_URL}/oauth2/authorization/kakao`; @@ -18,6 +21,7 @@ const domain = { evaluation: "/evaluations", favorites: "/favorites", profiles: "/me", + rooms: "/chat/rooms", }; interface ArticlesPost { @@ -265,6 +269,18 @@ export const evaluationAPI = { }; export const chatRoomAPI = { + create: async (authorNickname: string) => { + const token = await DeviceStorage.getToken(); + return ( + await axios.post(`${CHAT_BASE_URL}${domain.rooms}`), + { + data: { authorNickname }, + headers: { + Authorization: `bearer ${token}`, + }, + } + ); + }, getBuyers: async (articleId: number) => { const token = await DeviceStorage.getToken(); return await axios.get(`${BASE_URL}${domain.api}${domain.chatRoom}`, { diff --git a/front/src/components/ArticleDetail/ArticleDetailBottomNav.tsx b/front/src/components/ArticleDetail/ArticleDetailBottomNav.tsx index 239dde69..b267dfa1 100644 --- a/front/src/components/ArticleDetail/ArticleDetailBottomNav.tsx +++ b/front/src/components/ArticleDetail/ArticleDetailBottomNav.tsx @@ -1,13 +1,20 @@ import React from "react"; -import { StyleSheet, Text, View } from "react-native"; +import { Button, StyleSheet, Text, View } from "react-native"; import ArticleDetailFavorite from "./ArticleDetailFavorite"; import { useRecoilValue } from "recoil"; import { articleSelectedState } from "../../states/articleState"; import { insertComma } from "../../replacePriceWithComma"; import theme from "../../colors"; +import { memberNicknameState } from "../../states/memberState"; +import { chatRoomAPI } from "../../api/api"; export default function ArticleDetailBottomNav() { - const { price } = useRecoilValue(articleSelectedState); + const { author, price } = useRecoilValue(articleSelectedState); + const memberNickname = useRecoilValue(memberNicknameState); + + const createChat = (author: any) => { + chatRoomAPI.create(author.nickname); + }; return ( @@ -15,6 +22,9 @@ export default function ArticleDetailBottomNav() { + {memberNickname !== author.nickname ? ( +