From 8e5196c8c113945f7a32218c19eebec2c6554a25 Mon Sep 17 00:00:00 2001 From: FYHenry Date: Thu, 6 Jun 2024 21:59:15 +0200 Subject: [PATCH 1/9] Unused file --- .vscode/settings.json | 3 --- 1 file changed, 3 deletions(-) delete mode 100755 .vscode/settings.json diff --git a/.vscode/settings.json b/.vscode/settings.json deleted file mode 100755 index 8f2b711..0000000 --- a/.vscode/settings.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "java.compile.nullAnalysis.mode": "disabled" -} \ No newline at end of file From 94131738bd7def80969933d34344b9238e0eb7fd Mon Sep 17 00:00:00 2001 From: FYHenry Date: Thu, 6 Jun 2024 22:00:25 +0200 Subject: [PATCH 2/9] Added configuration to localize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Texte traduit selon ce qui sera indiqué dans l’en-tête HTTP `Accept-Language`. --- .../cross_cutting/security/LocaleConfig.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java diff --git a/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java new file mode 100644 index 0000000..2508de6 --- /dev/null +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java @@ -0,0 +1,26 @@ +package fr.inote.inote_api.cross_cutting.security; + +import java.util.Locale; + +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.support.ResourceBundleMessageSource; +import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver; + +@Configuration +public class LocaleConfig { + @Bean + public AcceptHeaderLocaleResolver getLocaleResolver() { + final AcceptHeaderLocaleResolver acceptHeaderLocaleResolver = new AcceptHeaderLocaleResolver(); + acceptHeaderLocaleResolver.setDefaultLocale(Locale.ENGLISH); + return acceptHeaderLocaleResolver; + } + + @Bean + public ResourceBundleMessageSource getMessageSource() { + final ResourceBundleMessageSource resourceBundleMessageSource = new ResourceBundleMessageSource(); + resourceBundleMessageSource.setBasename("i18n/messages"); + resourceBundleMessageSource.setDefaultEncoding("UTF-8"); + return resourceBundleMessageSource; + } +} From 6c61053e61f5077b6aa0663a8303c6dfb2eaea68 Mon Sep 17 00:00:00 2001 From: FYHenry Date: Thu, 6 Jun 2024 22:03:53 +0200 Subject: [PATCH 3/9] Packages renammed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Renommage des *packages* selon les recommendations d’Oracle. --- .vscode/inote-rest-api.code-workspace | 2 +- .../exceptions/InoteInvalidEmailFormat.java | 9 --- .../inoteApi/service/CommentService.java | 15 ----- .../InoteApiApplication.java | 2 +- .../controller/AuthController.java | 23 ++++---- .../controller/CommentController.java | 20 +++---- .../advice/ApplicationControllerAdvice.java | 7 +-- .../cross_cutting}/constants/Endpoint.java | 2 +- .../constants/HttpRequestBody.java | 2 +- .../cross_cutting}/constants/MessagesEn.java | 2 +- .../constants/RegexPatterns.java | 2 +- .../cross_cutting}/enums/PermissionEnum.java | 2 +- .../cross_cutting}/enums/RoleEnum.java | 2 +- .../enums/ValidationTypeEnum.java | 2 +- .../InoteEmptyMessageCommentException.java | 4 +- .../InoteExistingEmailException.java | 4 +- .../InoteExpiredRefreshTokenException.java | 4 +- .../InoteInvalidEmailException.java | 4 +- .../exceptions/InoteInvalidEmailFormat.java | 9 +++ .../InoteInvalidPasswordFormatException.java | 4 +- .../exceptions/InoteJwtNotFoundException.java | 4 +- .../exceptions/InoteMailException.java | 4 +- .../InoteNotAuthenticatedUserException.java | 4 +- .../InoteRoleNotFoundException.java | 4 +- .../exceptions/InoteUserException.java | 4 +- .../InoteUserNotFoundException.java | 4 +- .../InoteValidationExpiredException.java | 4 +- .../InoteValidationNotFoundException.java | 4 +- .../EncryptionPasswordConfiguration.java | 2 +- .../cross_cutting}/security/Jwt.java | 5 +- .../cross_cutting}/security/JwtFilter.java | 10 ++-- .../cross_cutting}/security/JwtService.java | 12 ++-- .../cross_cutting}/security/RefreshToken.java | 2 +- .../security/SecurityConfig.java | 6 +- .../cross_cutting}/security/WebConfig.java | 4 +- .../security/impl/JwtServiceImpl.java | 33 +++++------ .../dto/ActivationRequestDto.java | 2 +- .../dto/ChangePasswordRequestDto.java | 2 +- .../dto/CommentRequestDto.java | 2 +- .../dto/CommentResponseDto.java | 2 +- .../dto/NewPasswordRequestDto.java | 2 +- .../dto/PublicUserRequestDto.java | 2 +- .../dto/RefreshRequestDto.java | 2 +- .../dto/RegisterRequestDto.java | 2 +- .../dto/SignInRequestDto.java | 2 +- .../dto/SignInResponseDto.java | 2 +- .../dto/SignOutRequestDto.java | 2 +- .../entity/Comment.java | 2 +- .../{inoteApi => inote_api}/entity/Role.java | 4 +- .../{inoteApi => inote_api}/entity/User.java | 2 +- .../entity/Validation.java | 2 +- .../repository/CommentRepository.java | 5 +- .../repository/JwtRepository.java | 5 +- .../repository/RefreshTokenRepository.java | 4 +- .../repository/RoleRepository.java | 6 +- .../repository/UserRepository.java | 4 +- .../repository/ValidationRepository.java | 5 +- .../inote_api/service/CommentService.java | 15 +++++ .../service/NotificationService.java | 9 +-- .../service/RoleService.java | 8 +-- .../service/UserService.java | 8 +-- .../service/ValidationService.java | 12 ++-- .../service/impl/CommentServiceImpl.java | 18 +++--- .../service/impl/NotificationServiceImpl.java | 19 ++++--- .../service/impl/RoleServiceImpl.java | 13 +++-- .../service/impl/UserServiceImpl.java | 29 +++++----- .../service/impl/ValidationServiceImpl.java | 19 ++++--- ...itional-spring-configuration-metadata.json | 41 ++++++++++---- .../ConstantsForTests.java | 2 +- .../InoteApiApplicationTests.java | 2 +- .../controller/AuthControllerTest.java | 34 ++++++------ .../controller/CommentControllerTest.java | 29 +++++----- .../security/impl/JwtServiceImplTest.java | 38 +++++++------ .../security/impl/JwtServiceImpl_IT.java | 2 +- .../integrationTest/AuthController_IT.java | 55 ++++++++++--------- .../integrationTest/CommentController_IT.java | 45 +++++++-------- .../SpringSecurityWebAuxTestConfig.java | 9 +-- .../repository/JwtRepositoryTest.java | 19 ++++--- .../RefreshTokenRepositoryTest.java | 7 ++- .../repository/RoleRepositoryTest.java | 8 ++- .../repository/UserRepositoryTest.java | 13 +++-- .../repository/ValidationRepositoryTest.java | 17 ++++-- .../service/impl/CommentServiceImplTest.java | 28 +++++----- .../impl/NotificationServiceImplTest.java | 11 ++-- .../service/impl/RoleServiceImplTest.java | 15 ++--- .../service/impl/UserServiceImplTest.java | 27 ++++----- .../impl/ValidationServiceImplTest.java | 28 +++++----- 87 files changed, 465 insertions(+), 403 deletions(-) delete mode 100755 src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidEmailFormat.java delete mode 100755 src/main/java/fr/inote/inoteApi/service/CommentService.java rename src/main/java/fr/inote/{inoteApi => inote_api}/InoteApiApplication.java (94%) rename src/main/java/fr/inote/{inoteApi => inote_api}/controller/AuthController.java (95%) rename src/main/java/fr/inote/{inoteApi => inote_api}/controller/CommentController.java (85%) rename src/main/java/fr/inote/{inoteApi => inote_api}/controller/advice/ApplicationControllerAdvice.java (98%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/constants/Endpoint.java (93%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/constants/HttpRequestBody.java (79%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/constants/MessagesEn.java (98%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/constants/RegexPatterns.java (88%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/enums/PermissionEnum.java (91%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/enums/RoleEnum.java (98%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/enums/ValidationTypeEnum.java (60%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteEmptyMessageCommentException.java (61%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteExistingEmailException.java (51%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteExpiredRefreshTokenException.java (61%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteInvalidEmailException.java (50%) create mode 100755 src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidEmailFormat.java rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteInvalidPasswordFormatException.java (53%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteJwtNotFoundException.java (58%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteMailException.java (59%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteNotAuthenticatedUserException.java (60%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteRoleNotFoundException.java (51%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteUserException.java (56%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteUserNotFoundException.java (50%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteValidationExpiredException.java (53%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/exceptions/InoteValidationNotFoundException.java (53%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/EncryptionPasswordConfiguration.java (95%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/Jwt.java (93%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/JwtFilter.java (95%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/JwtService.java (67%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/RefreshToken.java (96%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/SecurityConfig.java (99%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/WebConfig.java (98%) rename src/main/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/impl/JwtServiceImpl.java (93%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/ActivationRequestDto.java (64%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/ChangePasswordRequestDto.java (66%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/CommentRequestDto.java (64%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/CommentResponseDto.java (76%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/NewPasswordRequestDto.java (78%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/PublicUserRequestDto.java (82%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/RefreshRequestDto.java (65%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/RegisterRequestDto.java (80%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/SignInRequestDto.java (72%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/SignInResponseDto.java (75%) rename src/main/java/fr/inote/{inoteApi => inote_api}/dto/SignOutRequestDto.java (65%) rename src/main/java/fr/inote/{inoteApi => inote_api}/entity/Comment.java (95%) rename src/main/java/fr/inote/{inoteApi => inote_api}/entity/Role.java (91%) rename src/main/java/fr/inote/{inoteApi => inote_api}/entity/User.java (98%) rename src/main/java/fr/inote/{inoteApi => inote_api}/entity/Validation.java (95%) rename src/main/java/fr/inote/{inoteApi => inote_api}/repository/CommentRepository.java (71%) rename src/main/java/fr/inote/{inoteApi => inote_api}/repository/JwtRepository.java (91%) rename src/main/java/fr/inote/{inoteApi => inote_api}/repository/RefreshTokenRepository.java (67%) rename src/main/java/fr/inote/{inoteApi => inote_api}/repository/RoleRepository.java (67%) rename src/main/java/fr/inote/{inoteApi => inote_api}/repository/UserRepository.java (84%) rename src/main/java/fr/inote/{inoteApi => inote_api}/repository/ValidationRepository.java (89%) create mode 100755 src/main/java/fr/inote/inote_api/service/CommentService.java rename src/main/java/fr/inote/{inoteApi => inote_api}/service/NotificationService.java (68%) rename src/main/java/fr/inote/{inoteApi => inote_api}/service/RoleService.java (85%) rename src/main/java/fr/inote/{inoteApi => inote_api}/service/UserService.java (94%) rename src/main/java/fr/inote/{inoteApi => inote_api}/service/ValidationService.java (83%) rename src/main/java/fr/inote/{inoteApi => inote_api}/service/impl/CommentServiceImpl.java (84%) rename src/main/java/fr/inote/{inoteApi => inote_api}/service/impl/NotificationServiceImpl.java (89%) rename src/main/java/fr/inote/{inoteApi => inote_api}/service/impl/RoleServiceImpl.java (87%) rename src/main/java/fr/inote/{inoteApi => inote_api}/service/impl/UserServiceImpl.java (93%) rename src/main/java/fr/inote/{inoteApi => inote_api}/service/impl/ValidationServiceImpl.java (80%) rename src/test/java/fr/inote/{inoteApi => inote_api}/ConstantsForTests.java (97%) rename src/test/java/fr/inote/{inoteApi => inote_api}/InoteApiApplicationTests.java (95%) rename src/test/java/fr/inote/{inoteApi => inote_api}/controller/AuthControllerTest.java (95%) rename src/test/java/fr/inote/{inoteApi => inote_api}/controller/CommentControllerTest.java (92%) rename src/test/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/impl/JwtServiceImplTest.java (95%) rename src/test/java/fr/inote/{inoteApi/crossCutting => inote_api/cross_cutting}/security/impl/JwtServiceImpl_IT.java (94%) rename src/test/java/fr/inote/{inoteApi => inote_api}/integrationTest/AuthController_IT.java (97%) rename src/test/java/fr/inote/{inoteApi => inote_api}/integrationTest/CommentController_IT.java (94%) rename src/test/java/fr/inote/{inoteApi => inote_api}/integrationTest/SpringSecurityWebAuxTestConfig.java (83%) rename src/test/java/fr/inote/{inoteApi => inote_api}/repository/JwtRepositoryTest.java (97%) rename src/test/java/fr/inote/{inoteApi => inote_api}/repository/RefreshTokenRepositoryTest.java (94%) rename src/test/java/fr/inote/{inoteApi => inote_api}/repository/RoleRepositoryTest.java (94%) rename src/test/java/fr/inote/{inoteApi => inote_api}/repository/UserRepositoryTest.java (93%) rename src/test/java/fr/inote/{inoteApi => inote_api}/repository/ValidationRepositoryTest.java (94%) rename src/test/java/fr/inote/{inoteApi => inote_api}/service/impl/CommentServiceImplTest.java (92%) rename src/test/java/fr/inote/{inoteApi => inote_api}/service/impl/NotificationServiceImplTest.java (97%) rename src/test/java/fr/inote/{inoteApi => inote_api}/service/impl/RoleServiceImplTest.java (92%) rename src/test/java/fr/inote/{inoteApi => inote_api}/service/impl/UserServiceImplTest.java (97%) rename src/test/java/fr/inote/{inoteApi => inote_api}/service/impl/ValidationServiceImplTest.java (88%) diff --git a/.vscode/inote-rest-api.code-workspace b/.vscode/inote-rest-api.code-workspace index ffcc772..303d5aa 100755 --- a/.vscode/inote-rest-api.code-workspace +++ b/.vscode/inote-rest-api.code-workspace @@ -34,7 +34,7 @@ "type": "java", "name": "Inote API application", "request": "launch", - "mainClass": "fr.inote.inoteApi.InoteApiApplication", + "mainClass": "fr.inote.inote_api.InoteApiApplication", "projectName": "InoteApi" /* Ceci n'est plus utile, tout la configuration pour le runner des test diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidEmailFormat.java b/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidEmailFormat.java deleted file mode 100755 index 1ca4623..0000000 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidEmailFormat.java +++ /dev/null @@ -1,9 +0,0 @@ -package fr.inote.inoteApi.crossCutting.exceptions; - -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.EMAIL_ERROR_INVALID_EMAIL_FORMAT; - -public class InoteInvalidEmailFormat extends Exception{ - public InoteInvalidEmailFormat(){ - super(EMAIL_ERROR_INVALID_EMAIL_FORMAT); - } -} diff --git a/src/main/java/fr/inote/inoteApi/service/CommentService.java b/src/main/java/fr/inote/inoteApi/service/CommentService.java deleted file mode 100755 index 560dfe5..0000000 --- a/src/main/java/fr/inote/inoteApi/service/CommentService.java +++ /dev/null @@ -1,15 +0,0 @@ -package fr.inote.inoteApi.service; - -import java.util.List; - -import fr.inote.inoteApi.crossCutting.exceptions.InoteEmptyMessageCommentException; -import fr.inote.inoteApi.dto.CommentResponseDto; -import fr.inote.inoteApi.entity.Comment; - -public interface CommentService { - - Comment createComment(String message) throws InoteEmptyMessageCommentException; - - public List getAll(); - -} diff --git a/src/main/java/fr/inote/inoteApi/InoteApiApplication.java b/src/main/java/fr/inote/inote_api/InoteApiApplication.java similarity index 94% rename from src/main/java/fr/inote/inoteApi/InoteApiApplication.java rename to src/main/java/fr/inote/inote_api/InoteApiApplication.java index d0dc434..f8fb1e4 100755 --- a/src/main/java/fr/inote/inoteApi/InoteApiApplication.java +++ b/src/main/java/fr/inote/inote_api/InoteApiApplication.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi; +package fr.inote.inote_api; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; diff --git a/src/main/java/fr/inote/inoteApi/controller/AuthController.java b/src/main/java/fr/inote/inote_api/controller/AuthController.java similarity index 95% rename from src/main/java/fr/inote/inoteApi/controller/AuthController.java rename to src/main/java/fr/inote/inote_api/controller/AuthController.java index 14d6128..0e30f35 100755 --- a/src/main/java/fr/inote/inoteApi/controller/AuthController.java +++ b/src/main/java/fr/inote/inote_api/controller/AuthController.java @@ -1,12 +1,5 @@ -package fr.inote.inoteApi.controller; - -import fr.inote.inoteApi.crossCutting.constants.Endpoint; -import fr.inote.inoteApi.crossCutting.exceptions.*; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; -import fr.inote.inoteApi.crossCutting.security.impl.JwtServiceImpl; -import fr.inote.inoteApi.dto.*; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.service.impl.UserServiceImpl; +package fr.inote.inote_api.controller; + import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; @@ -23,10 +16,18 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RestController; +import fr.inote.inote_api.cross_cutting.constants.Endpoint; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.exceptions.*; +import fr.inote.inote_api.cross_cutting.security.impl.JwtServiceImpl; +import fr.inote.inote_api.dto.*; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.service.impl.UserServiceImpl; + import java.util.Map; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.BEARER; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.REFRESH; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.BEARER; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.REFRESH; import static org.springframework.http.HttpStatus.CREATED; import static org.springframework.http.HttpStatus.OK; diff --git a/src/main/java/fr/inote/inoteApi/controller/CommentController.java b/src/main/java/fr/inote/inote_api/controller/CommentController.java similarity index 85% rename from src/main/java/fr/inote/inoteApi/controller/CommentController.java rename to src/main/java/fr/inote/inote_api/controller/CommentController.java index 08ecad7..b822af6 100755 --- a/src/main/java/fr/inote/inoteApi/controller/CommentController.java +++ b/src/main/java/fr/inote/inote_api/controller/CommentController.java @@ -1,13 +1,4 @@ -package fr.inote.inoteApi.controller; - -import fr.inote.inoteApi.crossCutting.constants.Endpoint; -import fr.inote.inoteApi.crossCutting.exceptions.InoteEmptyMessageCommentException; -import fr.inote.inoteApi.crossCutting.security.impl.JwtServiceImpl; -import fr.inote.inoteApi.dto.CommentRequestDto; -import fr.inote.inoteApi.dto.CommentResponseDto; -import fr.inote.inoteApi.entity.Comment; -import fr.inote.inoteApi.service.CommentService; -import fr.inote.inoteApi.service.impl.UserServiceImpl; +package fr.inote.inote_api.controller; import java.util.List; @@ -21,6 +12,15 @@ import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.RestController; +import fr.inote.inote_api.cross_cutting.constants.Endpoint; +import fr.inote.inote_api.cross_cutting.exceptions.InoteEmptyMessageCommentException; +import fr.inote.inote_api.cross_cutting.security.impl.JwtServiceImpl; +import fr.inote.inote_api.dto.CommentRequestDto; +import fr.inote.inote_api.dto.CommentResponseDto; +import fr.inote.inote_api.entity.Comment; +import fr.inote.inote_api.service.CommentService; +import fr.inote.inote_api.service.impl.UserServiceImpl; + /** * Controller for account user routes * diff --git a/src/main/java/fr/inote/inoteApi/controller/advice/ApplicationControllerAdvice.java b/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java similarity index 98% rename from src/main/java/fr/inote/inoteApi/controller/advice/ApplicationControllerAdvice.java rename to src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java index 7382f52..193f404 100755 --- a/src/main/java/fr/inote/inoteApi/controller/advice/ApplicationControllerAdvice.java +++ b/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java @@ -1,13 +1,12 @@ -package fr.inote.inoteApi.controller.advice; - -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; -import fr.inote.inoteApi.crossCutting.exceptions.*; +package fr.inote.inote_api.controller.advice; import org.springframework.http.ProblemDetail; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.exceptions.*; import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.MalformedJwtException; import io.jsonwebtoken.security.SignatureException; diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/constants/Endpoint.java b/src/main/java/fr/inote/inote_api/cross_cutting/constants/Endpoint.java similarity index 93% rename from src/main/java/fr/inote/inoteApi/crossCutting/constants/Endpoint.java rename to src/main/java/fr/inote/inote_api/cross_cutting/constants/Endpoint.java index 258734f..46eece5 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/constants/Endpoint.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/constants/Endpoint.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.constants; +package fr.inote.inote_api.cross_cutting.constants; public class Endpoint { public static final String REGISTER = "/api/auth/register"; diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/constants/HttpRequestBody.java b/src/main/java/fr/inote/inote_api/cross_cutting/constants/HttpRequestBody.java similarity index 79% rename from src/main/java/fr/inote/inoteApi/crossCutting/constants/HttpRequestBody.java rename to src/main/java/fr/inote/inote_api/cross_cutting/constants/HttpRequestBody.java index 14ad4da..7a19da7 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/constants/HttpRequestBody.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/constants/HttpRequestBody.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.constants; +package fr.inote.inote_api.cross_cutting.constants; public class HttpRequestBody { public static final String REFRESH = "refresh"; diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/constants/MessagesEn.java b/src/main/java/fr/inote/inote_api/cross_cutting/constants/MessagesEn.java similarity index 98% rename from src/main/java/fr/inote/inoteApi/crossCutting/constants/MessagesEn.java rename to src/main/java/fr/inote/inote_api/cross_cutting/constants/MessagesEn.java index ad8ef46..a404736 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/constants/MessagesEn.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/constants/MessagesEn.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.constants; +package fr.inote.inote_api.cross_cutting.constants; public class MessagesEn { // Auth diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/constants/RegexPatterns.java b/src/main/java/fr/inote/inote_api/cross_cutting/constants/RegexPatterns.java similarity index 88% rename from src/main/java/fr/inote/inoteApi/crossCutting/constants/RegexPatterns.java rename to src/main/java/fr/inote/inote_api/cross_cutting/constants/RegexPatterns.java index 950cf00..891605b 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/constants/RegexPatterns.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/constants/RegexPatterns.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.constants; +package fr.inote.inote_api.cross_cutting.constants; public class RegexPatterns { public static final String REGEX_EMAIL_PATTERN = "[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$"; diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/enums/PermissionEnum.java b/src/main/java/fr/inote/inote_api/cross_cutting/enums/PermissionEnum.java similarity index 91% rename from src/main/java/fr/inote/inoteApi/crossCutting/enums/PermissionEnum.java rename to src/main/java/fr/inote/inote_api/cross_cutting/enums/PermissionEnum.java index 5ceed08..53de98f 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/enums/PermissionEnum.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/enums/PermissionEnum.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.enums; +package fr.inote.inote_api.cross_cutting.enums; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/enums/RoleEnum.java b/src/main/java/fr/inote/inote_api/cross_cutting/enums/RoleEnum.java similarity index 98% rename from src/main/java/fr/inote/inoteApi/crossCutting/enums/RoleEnum.java rename to src/main/java/fr/inote/inote_api/cross_cutting/enums/RoleEnum.java index c9c9d76..37fde33 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/enums/RoleEnum.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/enums/RoleEnum.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.enums; +package fr.inote.inote_api.cross_cutting.enums; import java.util.Collection; import java.util.List; diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/enums/ValidationTypeEnum.java b/src/main/java/fr/inote/inote_api/cross_cutting/enums/ValidationTypeEnum.java similarity index 60% rename from src/main/java/fr/inote/inoteApi/crossCutting/enums/ValidationTypeEnum.java rename to src/main/java/fr/inote/inote_api/cross_cutting/enums/ValidationTypeEnum.java index 1a54473..2f9fa4c 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/enums/ValidationTypeEnum.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/enums/ValidationTypeEnum.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.enums; +package fr.inote.inote_api.cross_cutting.enums; public enum ValidationTypeEnum { REGISTRATION, diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteEmptyMessageCommentException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteEmptyMessageCommentException.java similarity index 61% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteEmptyMessageCommentException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteEmptyMessageCommentException.java index a530c43..732f320 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteEmptyMessageCommentException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteEmptyMessageCommentException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; public class InoteEmptyMessageCommentException extends Exception { public InoteEmptyMessageCommentException() { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteExistingEmailException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java similarity index 51% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteExistingEmailException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java index 3278b5c..85fe27b 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteExistingEmailException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.REGISTER_ERROR_USER_ALREADY_EXISTS; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.REGISTER_ERROR_USER_ALREADY_EXISTS; public class InoteExistingEmailException extends Exception{ public InoteExistingEmailException() { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteExpiredRefreshTokenException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExpiredRefreshTokenException.java similarity index 61% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteExpiredRefreshTokenException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExpiredRefreshTokenException.java index ac93cf9..c5c6c70 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteExpiredRefreshTokenException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExpiredRefreshTokenException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; public class InoteExpiredRefreshTokenException extends Exception { public InoteExpiredRefreshTokenException() { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidEmailException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidEmailException.java similarity index 50% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidEmailException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidEmailException.java index 5db0b42..cc3d5ca 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidEmailException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidEmailException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.EMAIL_ERROR_INVALID_EMAIL_FORMAT; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.EMAIL_ERROR_INVALID_EMAIL_FORMAT; public class InoteInvalidEmailException extends Exception { public InoteInvalidEmailException(){ diff --git a/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidEmailFormat.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidEmailFormat.java new file mode 100755 index 0000000..abaf176 --- /dev/null +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidEmailFormat.java @@ -0,0 +1,9 @@ +package fr.inote.inote_api.cross_cutting.exceptions; + +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.EMAIL_ERROR_INVALID_EMAIL_FORMAT; + +public class InoteInvalidEmailFormat extends Exception{ + public InoteInvalidEmailFormat(){ + super(EMAIL_ERROR_INVALID_EMAIL_FORMAT); + } +} diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidPasswordFormatException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidPasswordFormatException.java similarity index 53% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidPasswordFormatException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidPasswordFormatException.java index d49e50b..68cee78 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteInvalidPasswordFormatException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteInvalidPasswordFormatException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.EMAIL_ERROR_INVALID_PASSWORD_FORMAT; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.EMAIL_ERROR_INVALID_PASSWORD_FORMAT; public class InoteInvalidPasswordFormatException extends Exception { public InoteInvalidPasswordFormatException() { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteJwtNotFoundException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteJwtNotFoundException.java similarity index 58% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteJwtNotFoundException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteJwtNotFoundException.java index 47a1c83..cfcad16 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteJwtNotFoundException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteJwtNotFoundException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; public class InoteJwtNotFoundException extends Exception { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteMailException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteMailException.java similarity index 59% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteMailException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteMailException.java index 71cfed6..967bae0 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteMailException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteMailException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; public class InoteMailException extends Exception{ public InoteMailException(){ diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteNotAuthenticatedUserException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteNotAuthenticatedUserException.java similarity index 60% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteNotAuthenticatedUserException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteNotAuthenticatedUserException.java index b2fabe3..a6db19d 100644 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteNotAuthenticatedUserException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteNotAuthenticatedUserException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; public class InoteNotAuthenticatedUserException extends Exception { public InoteNotAuthenticatedUserException() { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteRoleNotFoundException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteRoleNotFoundException.java similarity index 51% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteRoleNotFoundException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteRoleNotFoundException.java index c6fe272..e483cac 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteRoleNotFoundException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteRoleNotFoundException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.ROLE_ERROR_NOT_FOUND; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.ROLE_ERROR_NOT_FOUND; public class InoteRoleNotFoundException extends Exception { public InoteRoleNotFoundException() { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteUserException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteUserException.java similarity index 56% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteUserException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteUserException.java index 604053d..e51b7a3 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteUserException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteUserException.java @@ -1,5 +1,5 @@ -package fr.inote.inoteApi.crossCutting.exceptions; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; +package fr.inote.inote_api.cross_cutting.exceptions; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; public class InoteUserException extends Exception { public InoteUserException() { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteUserNotFoundException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteUserNotFoundException.java similarity index 50% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteUserNotFoundException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteUserNotFoundException.java index cef54d0..249ec24 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteUserNotFoundException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteUserNotFoundException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.USER_ERROR_USER_NOT_FOUND; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.USER_ERROR_USER_NOT_FOUND; public class InoteUserNotFoundException extends Exception { public InoteUserNotFoundException() { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteValidationExpiredException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteValidationExpiredException.java similarity index 53% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteValidationExpiredException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteValidationExpiredException.java index 31e8a2b..149bf4b 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteValidationExpiredException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteValidationExpiredException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.VALIDATION_ERROR_VALIDATION_IS_EXPIRED; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.VALIDATION_ERROR_VALIDATION_IS_EXPIRED; public class InoteValidationExpiredException extends Exception { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteValidationNotFoundException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteValidationNotFoundException.java similarity index 53% rename from src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteValidationNotFoundException.java rename to src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteValidationNotFoundException.java index 53d9ce3..35fc720 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/exceptions/InoteValidationNotFoundException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteValidationNotFoundException.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.crossCutting.exceptions; +package fr.inote.inote_api.cross_cutting.exceptions; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.VALIDATION_ERROR_NOT_FOUND; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.VALIDATION_ERROR_NOT_FOUND; public class InoteValidationNotFoundException extends Exception{ diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/security/EncryptionPasswordConfiguration.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/EncryptionPasswordConfiguration.java similarity index 95% rename from src/main/java/fr/inote/inoteApi/crossCutting/security/EncryptionPasswordConfiguration.java rename to src/main/java/fr/inote/inote_api/cross_cutting/security/EncryptionPasswordConfiguration.java index 26cc7fa..ad0edda 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/security/EncryptionPasswordConfiguration.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/EncryptionPasswordConfiguration.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.security; +package fr.inote.inote_api.cross_cutting.security; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/security/Jwt.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/Jwt.java similarity index 93% rename from src/main/java/fr/inote/inoteApi/crossCutting/security/Jwt.java rename to src/main/java/fr/inote/inote_api/cross_cutting/security/Jwt.java index a2f531f..48b5c70 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/security/Jwt.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/Jwt.java @@ -1,6 +1,5 @@ -package fr.inote.inoteApi.crossCutting.security; +package fr.inote.inote_api.cross_cutting.security; -import fr.inote.inoteApi.entity.User; import jakarta.persistence.*; import lombok.AllArgsConstructor; import lombok.Builder; @@ -9,6 +8,8 @@ import java.util.Date; +import fr.inote.inote_api.entity.User; + @Builder @Data @NoArgsConstructor diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/security/JwtFilter.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/JwtFilter.java similarity index 95% rename from src/main/java/fr/inote/inoteApi/crossCutting/security/JwtFilter.java rename to src/main/java/fr/inote/inote_api/cross_cutting/security/JwtFilter.java index f7629fe..ba0d0cf 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/security/JwtFilter.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/JwtFilter.java @@ -1,14 +1,13 @@ -package fr.inote.inoteApi.crossCutting.security; +package fr.inote.inote_api.cross_cutting.security; -import fr.inote.inoteApi.crossCutting.security.impl.JwtServiceImpl; import jakarta.servlet.FilterChain; import jakarta.servlet.http.HttpServletRequest; import jakarta.servlet.http.HttpServletResponse; import lombok.NonNull; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.AUTHORIZATION; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.BEARER; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.AUTHORIZATION; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.BEARER; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.context.SecurityContextHolder; @@ -17,7 +16,8 @@ import org.springframework.web.filter.OncePerRequestFilter; import org.springframework.web.servlet.HandlerExceptionResolver; -import fr.inote.inoteApi.service.UserService; +import fr.inote.inote_api.cross_cutting.security.impl.JwtServiceImpl; +import fr.inote.inote_api.service.UserService; /** * Jwt filter, who perform JWT validation on a bearer token present in the HTTP diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/security/JwtService.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/JwtService.java similarity index 67% rename from src/main/java/fr/inote/inoteApi/crossCutting/security/JwtService.java rename to src/main/java/fr/inote/inote_api/cross_cutting/security/JwtService.java index 15cd9fa..ab07b78 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/security/JwtService.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/JwtService.java @@ -1,12 +1,12 @@ -package fr.inote.inoteApi.crossCutting.security; - -import fr.inote.inoteApi.crossCutting.exceptions.InoteExpiredRefreshTokenException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteJwtNotFoundException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteNotAuthenticatedUserException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteUserException; +package fr.inote.inote_api.cross_cutting.security; import java.util.Map; +import fr.inote.inote_api.cross_cutting.exceptions.InoteExpiredRefreshTokenException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteJwtNotFoundException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteNotAuthenticatedUserException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteUserException; + public interface JwtService { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/security/RefreshToken.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/RefreshToken.java similarity index 96% rename from src/main/java/fr/inote/inoteApi/crossCutting/security/RefreshToken.java rename to src/main/java/fr/inote/inote_api/cross_cutting/security/RefreshToken.java index d6ee43f..b4c0eac 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/security/RefreshToken.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/RefreshToken.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.security; +package fr.inote.inote_api.cross_cutting.security; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/security/SecurityConfig.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/SecurityConfig.java similarity index 99% rename from src/main/java/fr/inote/inoteApi/crossCutting/security/SecurityConfig.java rename to src/main/java/fr/inote/inote_api/cross_cutting/security/SecurityConfig.java index 1f23ae5..e705d02 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/security/SecurityConfig.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/SecurityConfig.java @@ -1,6 +1,5 @@ -package fr.inote.inoteApi.crossCutting.security; +package fr.inote.inote_api.cross_cutting.security; -import fr.inote.inoteApi.crossCutting.constants.Endpoint; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @@ -17,6 +16,9 @@ import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.security.web.SecurityFilterChain; import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; + +import fr.inote.inote_api.cross_cutting.constants.Endpoint; + import static org.springframework.http.HttpMethod.GET; import static org.springframework.http.HttpMethod.POST; diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/security/WebConfig.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/WebConfig.java similarity index 98% rename from src/main/java/fr/inote/inoteApi/crossCutting/security/WebConfig.java rename to src/main/java/fr/inote/inote_api/cross_cutting/security/WebConfig.java index 4afaf55..8b53a3b 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/security/WebConfig.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/WebConfig.java @@ -1,11 +1,11 @@ -package fr.inote.inoteApi.crossCutting.security; +package fr.inote.inote_api.cross_cutting.security; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; -import fr.inote.inoteApi.crossCutting.constants.Endpoint; +import fr.inote.inote_api.cross_cutting.constants.Endpoint; @Configuration public class WebConfig implements WebMvcConfigurer { diff --git a/src/main/java/fr/inote/inoteApi/crossCutting/security/impl/JwtServiceImpl.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/impl/JwtServiceImpl.java similarity index 93% rename from src/main/java/fr/inote/inoteApi/crossCutting/security/impl/JwtServiceImpl.java rename to src/main/java/fr/inote/inote_api/cross_cutting/security/impl/JwtServiceImpl.java index c439c8c..b723bc8 100755 --- a/src/main/java/fr/inote/inoteApi/crossCutting/security/impl/JwtServiceImpl.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/impl/JwtServiceImpl.java @@ -1,16 +1,5 @@ -package fr.inote.inoteApi.crossCutting.security.impl; - -import fr.inote.inoteApi.crossCutting.constants.HttpRequestBody; -import fr.inote.inoteApi.crossCutting.exceptions.InoteExpiredRefreshTokenException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteJwtNotFoundException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteNotAuthenticatedUserException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteUserException; -import fr.inote.inoteApi.crossCutting.security.Jwt; -import fr.inote.inoteApi.crossCutting.security.RefreshToken; -import fr.inote.inoteApi.crossCutting.security.JwtService; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.repository.JwtRepository; -import fr.inote.inoteApi.service.UserService; +package fr.inote.inote_api.cross_cutting.security.impl; + import io.jsonwebtoken.*; import io.jsonwebtoken.io.Decoders; import io.jsonwebtoken.security.Keys; @@ -24,15 +13,27 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import fr.inote.inote_api.cross_cutting.constants.HttpRequestBody; +import fr.inote.inote_api.cross_cutting.exceptions.InoteExpiredRefreshTokenException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteJwtNotFoundException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteNotAuthenticatedUserException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteUserException; +import fr.inote.inote_api.cross_cutting.security.Jwt; +import fr.inote.inote_api.cross_cutting.security.JwtService; +import fr.inote.inote_api.cross_cutting.security.RefreshToken; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.repository.JwtRepository; +import fr.inote.inote_api.service.UserService; + +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.BEARER; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.REFRESH; + import java.security.Key; import java.time.Instant; import java.util.*; import java.util.function.Function; import java.util.stream.Collectors; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.BEARER; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.REFRESH; - @Getter @Setter @Slf4j diff --git a/src/main/java/fr/inote/inoteApi/dto/ActivationRequestDto.java b/src/main/java/fr/inote/inote_api/dto/ActivationRequestDto.java similarity index 64% rename from src/main/java/fr/inote/inoteApi/dto/ActivationRequestDto.java rename to src/main/java/fr/inote/inote_api/dto/ActivationRequestDto.java index f75bf13..ed61307 100644 --- a/src/main/java/fr/inote/inoteApi/dto/ActivationRequestDto.java +++ b/src/main/java/fr/inote/inote_api/dto/ActivationRequestDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record ActivationRequestDto( String code diff --git a/src/main/java/fr/inote/inoteApi/dto/ChangePasswordRequestDto.java b/src/main/java/fr/inote/inote_api/dto/ChangePasswordRequestDto.java similarity index 66% rename from src/main/java/fr/inote/inoteApi/dto/ChangePasswordRequestDto.java rename to src/main/java/fr/inote/inote_api/dto/ChangePasswordRequestDto.java index 821b3ab..39996cd 100644 --- a/src/main/java/fr/inote/inoteApi/dto/ChangePasswordRequestDto.java +++ b/src/main/java/fr/inote/inote_api/dto/ChangePasswordRequestDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record ChangePasswordRequestDto( String email diff --git a/src/main/java/fr/inote/inoteApi/dto/CommentRequestDto.java b/src/main/java/fr/inote/inote_api/dto/CommentRequestDto.java similarity index 64% rename from src/main/java/fr/inote/inoteApi/dto/CommentRequestDto.java rename to src/main/java/fr/inote/inote_api/dto/CommentRequestDto.java index 940487f..161e262 100644 --- a/src/main/java/fr/inote/inoteApi/dto/CommentRequestDto.java +++ b/src/main/java/fr/inote/inote_api/dto/CommentRequestDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record CommentRequestDto( String msg diff --git a/src/main/java/fr/inote/inoteApi/dto/CommentResponseDto.java b/src/main/java/fr/inote/inote_api/dto/CommentResponseDto.java similarity index 76% rename from src/main/java/fr/inote/inoteApi/dto/CommentResponseDto.java rename to src/main/java/fr/inote/inote_api/dto/CommentResponseDto.java index b1b3809..985186e 100644 --- a/src/main/java/fr/inote/inoteApi/dto/CommentResponseDto.java +++ b/src/main/java/fr/inote/inote_api/dto/CommentResponseDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record CommentResponseDto( Integer id, diff --git a/src/main/java/fr/inote/inoteApi/dto/NewPasswordRequestDto.java b/src/main/java/fr/inote/inote_api/dto/NewPasswordRequestDto.java similarity index 78% rename from src/main/java/fr/inote/inoteApi/dto/NewPasswordRequestDto.java rename to src/main/java/fr/inote/inote_api/dto/NewPasswordRequestDto.java index 013d04e..14faa98 100644 --- a/src/main/java/fr/inote/inoteApi/dto/NewPasswordRequestDto.java +++ b/src/main/java/fr/inote/inote_api/dto/NewPasswordRequestDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record NewPasswordRequestDto( String email, diff --git a/src/main/java/fr/inote/inoteApi/dto/PublicUserRequestDto.java b/src/main/java/fr/inote/inote_api/dto/PublicUserRequestDto.java similarity index 82% rename from src/main/java/fr/inote/inoteApi/dto/PublicUserRequestDto.java rename to src/main/java/fr/inote/inote_api/dto/PublicUserRequestDto.java index 9f249ca..30b5095 100644 --- a/src/main/java/fr/inote/inoteApi/dto/PublicUserRequestDto.java +++ b/src/main/java/fr/inote/inote_api/dto/PublicUserRequestDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record PublicUserRequestDto( String pseudo, diff --git a/src/main/java/fr/inote/inoteApi/dto/RefreshRequestDto.java b/src/main/java/fr/inote/inote_api/dto/RefreshRequestDto.java similarity index 65% rename from src/main/java/fr/inote/inoteApi/dto/RefreshRequestDto.java rename to src/main/java/fr/inote/inote_api/dto/RefreshRequestDto.java index 7810993..88cf159 100644 --- a/src/main/java/fr/inote/inoteApi/dto/RefreshRequestDto.java +++ b/src/main/java/fr/inote/inote_api/dto/RefreshRequestDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record RefreshRequestDto( String refresh diff --git a/src/main/java/fr/inote/inoteApi/dto/RegisterRequestDto.java b/src/main/java/fr/inote/inote_api/dto/RegisterRequestDto.java similarity index 80% rename from src/main/java/fr/inote/inoteApi/dto/RegisterRequestDto.java rename to src/main/java/fr/inote/inote_api/dto/RegisterRequestDto.java index 1876c35..9d29d91 100644 --- a/src/main/java/fr/inote/inoteApi/dto/RegisterRequestDto.java +++ b/src/main/java/fr/inote/inote_api/dto/RegisterRequestDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record RegisterRequestDto( String pseudo, diff --git a/src/main/java/fr/inote/inoteApi/dto/SignInRequestDto.java b/src/main/java/fr/inote/inote_api/dto/SignInRequestDto.java similarity index 72% rename from src/main/java/fr/inote/inoteApi/dto/SignInRequestDto.java rename to src/main/java/fr/inote/inote_api/dto/SignInRequestDto.java index 26e3652..ca5f158 100644 --- a/src/main/java/fr/inote/inoteApi/dto/SignInRequestDto.java +++ b/src/main/java/fr/inote/inote_api/dto/SignInRequestDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record SignInRequestDto( String username, diff --git a/src/main/java/fr/inote/inoteApi/dto/SignInResponseDto.java b/src/main/java/fr/inote/inote_api/dto/SignInResponseDto.java similarity index 75% rename from src/main/java/fr/inote/inoteApi/dto/SignInResponseDto.java rename to src/main/java/fr/inote/inote_api/dto/SignInResponseDto.java index e966eb8..e085f84 100644 --- a/src/main/java/fr/inote/inoteApi/dto/SignInResponseDto.java +++ b/src/main/java/fr/inote/inote_api/dto/SignInResponseDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record SignInResponseDto( String bearer, diff --git a/src/main/java/fr/inote/inoteApi/dto/SignOutRequestDto.java b/src/main/java/fr/inote/inote_api/dto/SignOutRequestDto.java similarity index 65% rename from src/main/java/fr/inote/inoteApi/dto/SignOutRequestDto.java rename to src/main/java/fr/inote/inote_api/dto/SignOutRequestDto.java index 3064958..c0d5de9 100644 --- a/src/main/java/fr/inote/inoteApi/dto/SignOutRequestDto.java +++ b/src/main/java/fr/inote/inote_api/dto/SignOutRequestDto.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.dto; +package fr.inote.inote_api.dto; public record SignOutRequestDto( String bearer diff --git a/src/main/java/fr/inote/inoteApi/entity/Comment.java b/src/main/java/fr/inote/inote_api/entity/Comment.java similarity index 95% rename from src/main/java/fr/inote/inoteApi/entity/Comment.java rename to src/main/java/fr/inote/inote_api/entity/Comment.java index 129534e..ddf0453 100755 --- a/src/main/java/fr/inote/inoteApi/entity/Comment.java +++ b/src/main/java/fr/inote/inote_api/entity/Comment.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.entity; +package fr.inote.inote_api.entity; import jakarta.persistence.*; import lombok.AllArgsConstructor; diff --git a/src/main/java/fr/inote/inoteApi/entity/Role.java b/src/main/java/fr/inote/inote_api/entity/Role.java similarity index 91% rename from src/main/java/fr/inote/inoteApi/entity/Role.java rename to src/main/java/fr/inote/inote_api/entity/Role.java index 71f06cf..3d9ec6a 100755 --- a/src/main/java/fr/inote/inoteApi/entity/Role.java +++ b/src/main/java/fr/inote/inote_api/entity/Role.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.entity; +package fr.inote.inote_api.entity; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; import jakarta.persistence.Entity; import jakarta.persistence.EnumType; import jakarta.persistence.Enumerated; diff --git a/src/main/java/fr/inote/inoteApi/entity/User.java b/src/main/java/fr/inote/inote_api/entity/User.java similarity index 98% rename from src/main/java/fr/inote/inoteApi/entity/User.java rename to src/main/java/fr/inote/inote_api/entity/User.java index 2079b52..2dab54c 100755 --- a/src/main/java/fr/inote/inoteApi/entity/User.java +++ b/src/main/java/fr/inote/inote_api/entity/User.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.entity; +package fr.inote.inote_api.entity; import java.util.Collection; import jakarta.persistence.*; diff --git a/src/main/java/fr/inote/inoteApi/entity/Validation.java b/src/main/java/fr/inote/inote_api/entity/Validation.java similarity index 95% rename from src/main/java/fr/inote/inoteApi/entity/Validation.java rename to src/main/java/fr/inote/inote_api/entity/Validation.java index d16f1cb..116fe65 100755 --- a/src/main/java/fr/inote/inoteApi/entity/Validation.java +++ b/src/main/java/fr/inote/inote_api/entity/Validation.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.entity; +package fr.inote.inote_api.entity; import jakarta.persistence.*; import lombok.*; diff --git a/src/main/java/fr/inote/inoteApi/repository/CommentRepository.java b/src/main/java/fr/inote/inote_api/repository/CommentRepository.java similarity index 71% rename from src/main/java/fr/inote/inoteApi/repository/CommentRepository.java rename to src/main/java/fr/inote/inote_api/repository/CommentRepository.java index 35b8b35..0275802 100755 --- a/src/main/java/fr/inote/inoteApi/repository/CommentRepository.java +++ b/src/main/java/fr/inote/inote_api/repository/CommentRepository.java @@ -1,9 +1,10 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; -import fr.inote.inoteApi.entity.Comment; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; +import fr.inote.inote_api.entity.Comment; + @Repository public interface CommentRepository extends CrudRepository { } diff --git a/src/main/java/fr/inote/inoteApi/repository/JwtRepository.java b/src/main/java/fr/inote/inote_api/repository/JwtRepository.java similarity index 91% rename from src/main/java/fr/inote/inoteApi/repository/JwtRepository.java rename to src/main/java/fr/inote/inote_api/repository/JwtRepository.java index 4943b75..932592b 100755 --- a/src/main/java/fr/inote/inoteApi/repository/JwtRepository.java +++ b/src/main/java/fr/inote/inote_api/repository/JwtRepository.java @@ -1,10 +1,11 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; -import fr.inote.inoteApi.crossCutting.security.Jwt; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; +import fr.inote.inote_api.cross_cutting.security.Jwt; + import java.util.Optional; import java.util.stream.Stream; diff --git a/src/main/java/fr/inote/inoteApi/repository/RefreshTokenRepository.java b/src/main/java/fr/inote/inote_api/repository/RefreshTokenRepository.java similarity index 67% rename from src/main/java/fr/inote/inoteApi/repository/RefreshTokenRepository.java rename to src/main/java/fr/inote/inote_api/repository/RefreshTokenRepository.java index 6938884..0642f41 100755 --- a/src/main/java/fr/inote/inoteApi/repository/RefreshTokenRepository.java +++ b/src/main/java/fr/inote/inote_api/repository/RefreshTokenRepository.java @@ -1,9 +1,9 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; -import fr.inote.inoteApi.crossCutting.security.RefreshToken; +import fr.inote.inote_api.cross_cutting.security.RefreshToken; @Repository public interface RefreshTokenRepository extends CrudRepository { diff --git a/src/main/java/fr/inote/inoteApi/repository/RoleRepository.java b/src/main/java/fr/inote/inote_api/repository/RoleRepository.java similarity index 67% rename from src/main/java/fr/inote/inoteApi/repository/RoleRepository.java rename to src/main/java/fr/inote/inote_api/repository/RoleRepository.java index 0ab3d6d..6fd7833 100755 --- a/src/main/java/fr/inote/inoteApi/repository/RoleRepository.java +++ b/src/main/java/fr/inote/inote_api/repository/RoleRepository.java @@ -1,12 +1,12 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; import java.util.Optional; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.entity.Role; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.entity.Role; @Repository public interface RoleRepository extends CrudRepository { diff --git a/src/main/java/fr/inote/inoteApi/repository/UserRepository.java b/src/main/java/fr/inote/inote_api/repository/UserRepository.java similarity index 84% rename from src/main/java/fr/inote/inoteApi/repository/UserRepository.java rename to src/main/java/fr/inote/inote_api/repository/UserRepository.java index 3fcaf4c..d4e050e 100755 --- a/src/main/java/fr/inote/inoteApi/repository/UserRepository.java +++ b/src/main/java/fr/inote/inote_api/repository/UserRepository.java @@ -1,11 +1,11 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; import java.util.Optional; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; -import fr.inote.inoteApi.entity.User; +import fr.inote.inote_api.entity.User; @Repository public interface UserRepository extends CrudRepository { diff --git a/src/main/java/fr/inote/inoteApi/repository/ValidationRepository.java b/src/main/java/fr/inote/inote_api/repository/ValidationRepository.java similarity index 89% rename from src/main/java/fr/inote/inoteApi/repository/ValidationRepository.java rename to src/main/java/fr/inote/inote_api/repository/ValidationRepository.java index 429fb0f..a81bb41 100755 --- a/src/main/java/fr/inote/inoteApi/repository/ValidationRepository.java +++ b/src/main/java/fr/inote/inote_api/repository/ValidationRepository.java @@ -1,9 +1,10 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; -import fr.inote.inoteApi.entity.Validation; import org.springframework.data.repository.CrudRepository; import org.springframework.stereotype.Repository; +import fr.inote.inote_api.entity.Validation; + import java.time.Instant; import java.util.Optional; diff --git a/src/main/java/fr/inote/inote_api/service/CommentService.java b/src/main/java/fr/inote/inote_api/service/CommentService.java new file mode 100755 index 0000000..7c6af87 --- /dev/null +++ b/src/main/java/fr/inote/inote_api/service/CommentService.java @@ -0,0 +1,15 @@ +package fr.inote.inote_api.service; + +import java.util.List; + +import fr.inote.inote_api.cross_cutting.exceptions.InoteEmptyMessageCommentException; +import fr.inote.inote_api.dto.CommentResponseDto; +import fr.inote.inote_api.entity.Comment; + +public interface CommentService { + + Comment createComment(String message) throws InoteEmptyMessageCommentException; + + public List getAll(); + +} diff --git a/src/main/java/fr/inote/inoteApi/service/NotificationService.java b/src/main/java/fr/inote/inote_api/service/NotificationService.java similarity index 68% rename from src/main/java/fr/inote/inoteApi/service/NotificationService.java rename to src/main/java/fr/inote/inote_api/service/NotificationService.java index 94e6ec3..b0ccd17 100755 --- a/src/main/java/fr/inote/inoteApi/service/NotificationService.java +++ b/src/main/java/fr/inote/inote_api/service/NotificationService.java @@ -1,10 +1,11 @@ -package fr.inote.inoteApi.service; +package fr.inote.inote_api.service; -import fr.inote.inoteApi.crossCutting.exceptions.InoteInvalidEmailException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteMailException; -import fr.inote.inoteApi.entity.Validation; import org.springframework.mail.MailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidEmailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteMailException; +import fr.inote.inote_api.entity.Validation; + /** * The interface Notification service. * @author atsuhiko Mochizuki diff --git a/src/main/java/fr/inote/inoteApi/service/RoleService.java b/src/main/java/fr/inote/inote_api/service/RoleService.java similarity index 85% rename from src/main/java/fr/inote/inoteApi/service/RoleService.java rename to src/main/java/fr/inote/inote_api/service/RoleService.java index a7b729e..04e50b1 100755 --- a/src/main/java/fr/inote/inoteApi/service/RoleService.java +++ b/src/main/java/fr/inote/inote_api/service/RoleService.java @@ -1,10 +1,10 @@ -package fr.inote.inoteApi.service; - -import fr.inote.inoteApi.crossCutting.exceptions.InoteUserException; -import fr.inote.inoteApi.entity.Role; +package fr.inote.inote_api.service; import java.util.List; +import fr.inote.inote_api.cross_cutting.exceptions.InoteUserException; +import fr.inote.inote_api.entity.Role; + public interface RoleService { /** diff --git a/src/main/java/fr/inote/inoteApi/service/UserService.java b/src/main/java/fr/inote/inote_api/service/UserService.java similarity index 94% rename from src/main/java/fr/inote/inoteApi/service/UserService.java rename to src/main/java/fr/inote/inote_api/service/UserService.java index ba2d8f8..4ebab3d 100755 --- a/src/main/java/fr/inote/inoteApi/service/UserService.java +++ b/src/main/java/fr/inote/inote_api/service/UserService.java @@ -1,12 +1,12 @@ -package fr.inote.inoteApi.service; - -import fr.inote.inoteApi.crossCutting.exceptions.*; -import fr.inote.inoteApi.entity.User; +package fr.inote.inote_api.service; import org.springframework.mail.MailException; import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.core.userdetails.UsernameNotFoundException; +import fr.inote.inote_api.cross_cutting.exceptions.*; +import fr.inote.inote_api.entity.User; + public interface UserService extends UserDetailsService { diff --git a/src/main/java/fr/inote/inoteApi/service/ValidationService.java b/src/main/java/fr/inote/inote_api/service/ValidationService.java similarity index 83% rename from src/main/java/fr/inote/inoteApi/service/ValidationService.java rename to src/main/java/fr/inote/inote_api/service/ValidationService.java index d2d5b11..dbf1546 100755 --- a/src/main/java/fr/inote/inoteApi/service/ValidationService.java +++ b/src/main/java/fr/inote/inote_api/service/ValidationService.java @@ -1,12 +1,12 @@ -package fr.inote.inoteApi.service; +package fr.inote.inote_api.service; import org.springframework.mail.MailException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteInvalidEmailException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteMailException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteValidationNotFoundException; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.entity.Validation; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidEmailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteMailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteValidationNotFoundException; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.entity.Validation; /** * The interface Validation service. diff --git a/src/main/java/fr/inote/inoteApi/service/impl/CommentServiceImpl.java b/src/main/java/fr/inote/inote_api/service/impl/CommentServiceImpl.java similarity index 84% rename from src/main/java/fr/inote/inoteApi/service/impl/CommentServiceImpl.java rename to src/main/java/fr/inote/inote_api/service/impl/CommentServiceImpl.java index a3a6e6a..b6fe296 100755 --- a/src/main/java/fr/inote/inoteApi/service/impl/CommentServiceImpl.java +++ b/src/main/java/fr/inote/inote_api/service/impl/CommentServiceImpl.java @@ -1,12 +1,4 @@ -package fr.inote.inoteApi.service.impl; - -import fr.inote.inoteApi.crossCutting.exceptions.InoteEmptyMessageCommentException; -import fr.inote.inoteApi.dto.CommentResponseDto; -import fr.inote.inoteApi.entity.Comment; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.repository.CommentRepository; -import fr.inote.inoteApi.repository.UserRepository; -import fr.inote.inoteApi.service.CommentService; +package fr.inote.inote_api.service.impl; import java.util.ArrayList; import java.util.List; @@ -15,6 +7,14 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.stereotype.Service; +import fr.inote.inote_api.cross_cutting.exceptions.InoteEmptyMessageCommentException; +import fr.inote.inote_api.dto.CommentResponseDto; +import fr.inote.inote_api.entity.Comment; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.repository.CommentRepository; +import fr.inote.inote_api.repository.UserRepository; +import fr.inote.inote_api.service.CommentService; + /** * The Service CommentServiceImpl * diff --git a/src/main/java/fr/inote/inoteApi/service/impl/NotificationServiceImpl.java b/src/main/java/fr/inote/inote_api/service/impl/NotificationServiceImpl.java similarity index 89% rename from src/main/java/fr/inote/inoteApi/service/impl/NotificationServiceImpl.java rename to src/main/java/fr/inote/inote_api/service/impl/NotificationServiceImpl.java index 2444f3d..2879197 100755 --- a/src/main/java/fr/inote/inoteApi/service/impl/NotificationServiceImpl.java +++ b/src/main/java/fr/inote/inote_api/service/impl/NotificationServiceImpl.java @@ -1,15 +1,11 @@ -package fr.inote.inoteApi.service.impl; - -import fr.inote.inoteApi.crossCutting.exceptions.InoteInvalidEmailException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteMailException; -import fr.inote.inoteApi.entity.Validation; -import fr.inote.inoteApi.service.NotificationService; - -import static fr.inote.inoteApi.crossCutting.constants.RegexPatterns.REGEX_EMAIL_PATTERN; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.EMAIL_SUBJECT_ACTIVATION_CODE; +package fr.inote.inote_api.service.impl; import java.util.regex.Matcher; import java.util.regex.Pattern; + +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.EMAIL_SUBJECT_ACTIVATION_CODE; +import static fr.inote.inote_api.cross_cutting.constants.RegexPatterns.REGEX_EMAIL_PATTERN; + import java.time.ZoneId; import java.time.format.DateTimeFormatter; @@ -19,6 +15,11 @@ import org.springframework.mail.javamail.JavaMailSender; import org.springframework.stereotype.Service; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidEmailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteMailException; +import fr.inote.inote_api.entity.Validation; +import fr.inote.inote_api.service.NotificationService; + /** * The Service NotificationServiceImpl * diff --git a/src/main/java/fr/inote/inoteApi/service/impl/RoleServiceImpl.java b/src/main/java/fr/inote/inote_api/service/impl/RoleServiceImpl.java similarity index 87% rename from src/main/java/fr/inote/inoteApi/service/impl/RoleServiceImpl.java rename to src/main/java/fr/inote/inote_api/service/impl/RoleServiceImpl.java index eddfd26..6f51f33 100755 --- a/src/main/java/fr/inote/inoteApi/service/impl/RoleServiceImpl.java +++ b/src/main/java/fr/inote/inote_api/service/impl/RoleServiceImpl.java @@ -1,12 +1,13 @@ -package fr.inote.inoteApi.service.impl; +package fr.inote.inote_api.service.impl; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.exceptions.InoteUserException; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.repository.RoleRepository; -import fr.inote.inoteApi.service.RoleService; import org.springframework.stereotype.Service; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.InoteUserException; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.repository.RoleRepository; +import fr.inote.inote_api.service.RoleService; + import java.util.ArrayList; import java.util.List; diff --git a/src/main/java/fr/inote/inoteApi/service/impl/UserServiceImpl.java b/src/main/java/fr/inote/inote_api/service/impl/UserServiceImpl.java similarity index 93% rename from src/main/java/fr/inote/inoteApi/service/impl/UserServiceImpl.java rename to src/main/java/fr/inote/inote_api/service/impl/UserServiceImpl.java index a11d525..cc0fc73 100755 --- a/src/main/java/fr/inote/inoteApi/service/impl/UserServiceImpl.java +++ b/src/main/java/fr/inote/inote_api/service/impl/UserServiceImpl.java @@ -1,30 +1,29 @@ -package fr.inote.inoteApi.service.impl; +package fr.inote.inote_api.service.impl; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.exceptions.*; - -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.entity.Validation; -import fr.inote.inoteApi.repository.ValidationRepository; -import fr.inote.inoteApi.service.UserService; -import fr.inote.inoteApi.service.ValidationService; import org.springframework.mail.MailException; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; import org.springframework.stereotype.Service; -import fr.inote.inoteApi.repository.RoleRepository; -import fr.inote.inoteApi.repository.UserRepository; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.*; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.entity.Validation; +import fr.inote.inote_api.repository.RoleRepository; +import fr.inote.inote_api.repository.UserRepository; +import fr.inote.inote_api.repository.ValidationRepository; +import fr.inote.inote_api.service.UserService; +import fr.inote.inote_api.service.ValidationService; + +import static fr.inote.inote_api.cross_cutting.constants.RegexPatterns.REGEX_EMAIL_PATTERN; +import static fr.inote.inote_api.cross_cutting.constants.RegexPatterns.REGEX_PASSWORD_FORMAT; import java.time.Instant; import java.util.Optional; import java.util.regex.Matcher; import java.util.regex.Pattern; -import static fr.inote.inoteApi.crossCutting.constants.RegexPatterns.REGEX_EMAIL_PATTERN; -import static fr.inote.inoteApi.crossCutting.constants.RegexPatterns.REGEX_PASSWORD_FORMAT; - /** * Services related to User * diff --git a/src/main/java/fr/inote/inoteApi/service/impl/ValidationServiceImpl.java b/src/main/java/fr/inote/inote_api/service/impl/ValidationServiceImpl.java similarity index 80% rename from src/main/java/fr/inote/inoteApi/service/impl/ValidationServiceImpl.java rename to src/main/java/fr/inote/inote_api/service/impl/ValidationServiceImpl.java index 001e681..d81a3c1 100755 --- a/src/main/java/fr/inote/inoteApi/service/impl/ValidationServiceImpl.java +++ b/src/main/java/fr/inote/inote_api/service/impl/ValidationServiceImpl.java @@ -1,17 +1,18 @@ -package fr.inote.inoteApi.service.impl; +package fr.inote.inote_api.service.impl; -import fr.inote.inoteApi.crossCutting.exceptions.InoteInvalidEmailException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteMailException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteValidationNotFoundException; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.entity.Validation; -import fr.inote.inoteApi.repository.ValidationRepository; -import fr.inote.inoteApi.service.NotificationService; -import fr.inote.inoteApi.service.ValidationService; import jakarta.transaction.Transactional; import org.springframework.mail.MailException; import org.springframework.stereotype.Service; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidEmailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteMailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteValidationNotFoundException; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.entity.Validation; +import fr.inote.inote_api.repository.ValidationRepository; +import fr.inote.inote_api.service.NotificationService; +import fr.inote.inote_api.service.ValidationService; + import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.Random; diff --git a/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/src/main/resources/META-INF/additional-spring-configuration-metadata.json index b0670e1..0b64caf 100755 --- a/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -1,12 +1,29 @@ -{"properties": [ - { - "name": "inote.backend.mail.notreply", - "type": "java.lang.String", - "description": "E-mail address of remote SMTP server" - }, - { - "name": "inote.frontend.host", - "type": "java.lang.String", - "description": "Web address of frontend HTTP server" - } -]} \ No newline at end of file +{ + "properties": [ + { + "name": "inote.backend.mail.notreply", + "type": "java.lang.String", + "description": "E-mail address of remote SMTP server" + }, + { + "name": "inote.frontend.host", + "type": "java.lang.String", + "description": "Web address of frontend HTTP server" + }, + { + "name": "jwt.jwtValidityRefreshTokenAdditionalTimeToTokenInSeconds", + "type": "java.lang.Integer", + "description": "A description for 'jwt.jwtValidityRefreshTokenAdditionalTimeToTokenInSeconds'" + }, + { + "name": "jwt.validyTokenTimeInSeconds", + "type": "java.lang.Integer", + "description": "A description for 'jwt.validyTokenTimeInSeconds'" + }, + { + "name": "jwt.encryptionKey", + "type": "java.lang.String", + "description": "A description for 'jwt.encryptionKey'" + } + ] +} \ No newline at end of file diff --git a/src/test/java/fr/inote/inoteApi/ConstantsForTests.java b/src/test/java/fr/inote/inote_api/ConstantsForTests.java similarity index 97% rename from src/test/java/fr/inote/inoteApi/ConstantsForTests.java rename to src/test/java/fr/inote/inote_api/ConstantsForTests.java index 876a4da..2d09701 100755 --- a/src/test/java/fr/inote/inoteApi/ConstantsForTests.java +++ b/src/test/java/fr/inote/inote_api/ConstantsForTests.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi; +package fr.inote.inote_api; import org.springframework.test.context.ActiveProfiles; diff --git a/src/test/java/fr/inote/inoteApi/InoteApiApplicationTests.java b/src/test/java/fr/inote/inote_api/InoteApiApplicationTests.java similarity index 95% rename from src/test/java/fr/inote/inoteApi/InoteApiApplicationTests.java rename to src/test/java/fr/inote/inote_api/InoteApiApplicationTests.java index e756e6b..07a10b2 100755 --- a/src/test/java/fr/inote/inoteApi/InoteApiApplicationTests.java +++ b/src/test/java/fr/inote/inote_api/InoteApiApplicationTests.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi; +package fr.inote.inote_api; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; diff --git a/src/test/java/fr/inote/inoteApi/controller/AuthControllerTest.java b/src/test/java/fr/inote/inote_api/controller/AuthControllerTest.java similarity index 95% rename from src/test/java/fr/inote/inoteApi/controller/AuthControllerTest.java rename to src/test/java/fr/inote/inote_api/controller/AuthControllerTest.java index 109753a..43152f0 100755 --- a/src/test/java/fr/inote/inoteApi/controller/AuthControllerTest.java +++ b/src/test/java/fr/inote/inote_api/controller/AuthControllerTest.java @@ -1,19 +1,21 @@ -package fr.inote.inoteApi.controller; +package fr.inote.inote_api.controller; import com.fasterxml.jackson.databind.ObjectMapper; -import fr.inote.inoteApi.crossCutting.constants.Endpoint; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.exceptions.*; -import fr.inote.inoteApi.crossCutting.security.Jwt; -import fr.inote.inoteApi.crossCutting.security.RefreshToken; -import fr.inote.inoteApi.crossCutting.security.impl.JwtServiceImpl; -import fr.inote.inoteApi.dto.*; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.entity.Validation; -import fr.inote.inoteApi.service.impl.UserServiceImpl; +import fr.inote.inote_api.controller.AuthController; +import fr.inote.inote_api.cross_cutting.constants.Endpoint; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.*; +import fr.inote.inote_api.cross_cutting.security.Jwt; +import fr.inote.inote_api.cross_cutting.security.RefreshToken; +import fr.inote.inote_api.cross_cutting.security.impl.JwtServiceImpl; +import fr.inote.inote_api.dto.*; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.entity.Validation; +import fr.inote.inote_api.service.impl.UserServiceImpl; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -37,9 +39,9 @@ import java.util.HashMap; import java.util.Map; -import static fr.inote.inoteApi.ConstantsForTests.*; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.BEARER; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.REFRESH; +import static fr.inote.inote_api.ConstantsForTests.*; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.BEARER; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.REFRESH; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.*; diff --git a/src/test/java/fr/inote/inoteApi/controller/CommentControllerTest.java b/src/test/java/fr/inote/inote_api/controller/CommentControllerTest.java similarity index 92% rename from src/test/java/fr/inote/inoteApi/controller/CommentControllerTest.java rename to src/test/java/fr/inote/inote_api/controller/CommentControllerTest.java index e6b33dd..54132a4 100755 --- a/src/test/java/fr/inote/inoteApi/controller/CommentControllerTest.java +++ b/src/test/java/fr/inote/inote_api/controller/CommentControllerTest.java @@ -1,17 +1,20 @@ -package fr.inote.inoteApi.controller; +package fr.inote.inote_api.controller; import com.fasterxml.jackson.databind.ObjectMapper; -import fr.inote.inoteApi.crossCutting.constants.Endpoint; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.exceptions.*; -import fr.inote.inoteApi.crossCutting.security.impl.JwtServiceImpl; -import fr.inote.inoteApi.dto.*; -import fr.inote.inoteApi.entity.Comment; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.repository.CommentRepository; -import fr.inote.inoteApi.service.impl.CommentServiceImpl; -import fr.inote.inoteApi.service.impl.UserServiceImpl; + +import fr.inote.inote_api.controller.CommentController; +import fr.inote.inote_api.cross_cutting.constants.Endpoint; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.*; +import fr.inote.inote_api.cross_cutting.security.impl.JwtServiceImpl; +import fr.inote.inote_api.dto.*; +import fr.inote.inote_api.entity.Comment; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.repository.CommentRepository; +import fr.inote.inote_api.service.impl.CommentServiceImpl; +import fr.inote.inote_api.service.impl.UserServiceImpl; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -28,7 +31,7 @@ import org.springframework.test.web.servlet.ResultActions; import org.springframework.test.web.servlet.result.MockMvcResultMatchers; -import static fr.inote.inoteApi.ConstantsForTests.*; +import static fr.inote.inote_api.ConstantsForTests.*; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.*; diff --git a/src/test/java/fr/inote/inoteApi/crossCutting/security/impl/JwtServiceImplTest.java b/src/test/java/fr/inote/inote_api/cross_cutting/security/impl/JwtServiceImplTest.java similarity index 95% rename from src/test/java/fr/inote/inoteApi/crossCutting/security/impl/JwtServiceImplTest.java rename to src/test/java/fr/inote/inote_api/cross_cutting/security/impl/JwtServiceImplTest.java index 96b3d89..94836a1 100755 --- a/src/test/java/fr/inote/inoteApi/crossCutting/security/impl/JwtServiceImplTest.java +++ b/src/test/java/fr/inote/inote_api/cross_cutting/security/impl/JwtServiceImplTest.java @@ -1,17 +1,5 @@ -package fr.inote.inoteApi.crossCutting.security.impl; - -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.exceptions.InoteExpiredRefreshTokenException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteJwtNotFoundException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteNotAuthenticatedUserException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteUserException; -import fr.inote.inoteApi.crossCutting.security.Jwt; -import fr.inote.inoteApi.crossCutting.security.RefreshToken; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.repository.JwtRepository; -import fr.inote.inoteApi.repository.UserRepository; -import fr.inote.inoteApi.service.UserService; +package fr.inote.inote_api.cross_cutting.security.impl; + import io.jsonwebtoken.Claims; import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.MalformedJwtException; @@ -27,6 +15,21 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.test.context.ActiveProfiles; + +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.InoteExpiredRefreshTokenException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteJwtNotFoundException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteNotAuthenticatedUserException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteUserException; +import fr.inote.inote_api.cross_cutting.security.Jwt; +import fr.inote.inote_api.cross_cutting.security.RefreshToken; +import fr.inote.inote_api.cross_cutting.security.impl.JwtServiceImpl; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.repository.JwtRepository; +import fr.inote.inote_api.repository.UserRepository; +import fr.inote.inote_api.service.UserService; + import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.security.Key; @@ -35,10 +38,9 @@ import java.util.*; import java.util.stream.Stream; -import static fr.inote.inoteApi.ConstantsForTests.*; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.BEARER; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.REFRESH; - +import static fr.inote.inote_api.ConstantsForTests.*; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.BEARER; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.REFRESH; import static java.lang.Thread.sleep; import static org.assertj.core.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; diff --git a/src/test/java/fr/inote/inoteApi/crossCutting/security/impl/JwtServiceImpl_IT.java b/src/test/java/fr/inote/inote_api/cross_cutting/security/impl/JwtServiceImpl_IT.java similarity index 94% rename from src/test/java/fr/inote/inoteApi/crossCutting/security/impl/JwtServiceImpl_IT.java rename to src/test/java/fr/inote/inote_api/cross_cutting/security/impl/JwtServiceImpl_IT.java index f766950..25da4d8 100755 --- a/src/test/java/fr/inote/inoteApi/crossCutting/security/impl/JwtServiceImpl_IT.java +++ b/src/test/java/fr/inote/inote_api/cross_cutting/security/impl/JwtServiceImpl_IT.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.crossCutting.security.impl; +package fr.inote.inote_api.cross_cutting.security.impl; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Disabled; diff --git a/src/test/java/fr/inote/inoteApi/integrationTest/AuthController_IT.java b/src/test/java/fr/inote/inote_api/integrationTest/AuthController_IT.java similarity index 97% rename from src/test/java/fr/inote/inoteApi/integrationTest/AuthController_IT.java rename to src/test/java/fr/inote/inote_api/integrationTest/AuthController_IT.java index 1ba1b82..54f668f 100755 --- a/src/test/java/fr/inote/inoteApi/integrationTest/AuthController_IT.java +++ b/src/test/java/fr/inote/inote_api/integrationTest/AuthController_IT.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.integrationTest; +package fr.inote.inote_api.integrationTest; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -7,28 +7,29 @@ import com.icegreen.greenmail.store.FolderException; import com.icegreen.greenmail.util.GreenMailUtil; import com.icegreen.greenmail.util.ServerSetupTest; -import fr.inote.inoteApi.ConstantsForTests; - -import fr.inote.inoteApi.crossCutting.constants.Endpoint; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.exceptions.InoteUserException; -import fr.inote.inoteApi.crossCutting.security.impl.JwtServiceImpl; -import fr.inote.inoteApi.dto.ActivationRequestDto; -import fr.inote.inoteApi.dto.SignInRequestDto; -import fr.inote.inoteApi.dto.ChangePasswordRequestDto; -import fr.inote.inoteApi.dto.NewPasswordRequestDto; -import fr.inote.inoteApi.dto.PublicUserRequestDto; -import fr.inote.inoteApi.dto.RefreshRequestDto; -import fr.inote.inoteApi.dto.RegisterRequestDto; -import fr.inote.inoteApi.dto.SignInResponseDto; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.entity.Validation; -import fr.inote.inoteApi.repository.JwtRepository; -import fr.inote.inoteApi.repository.RoleRepository; -import fr.inote.inoteApi.repository.UserRepository; -import fr.inote.inoteApi.repository.ValidationRepository; + +import fr.inote.inote_api.ConstantsForTests; +import fr.inote.inote_api.cross_cutting.constants.Endpoint; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.InoteUserException; +import fr.inote.inote_api.cross_cutting.security.impl.JwtServiceImpl; +import fr.inote.inote_api.dto.ActivationRequestDto; +import fr.inote.inote_api.dto.ChangePasswordRequestDto; +import fr.inote.inote_api.dto.NewPasswordRequestDto; +import fr.inote.inote_api.dto.PublicUserRequestDto; +import fr.inote.inote_api.dto.RefreshRequestDto; +import fr.inote.inote_api.dto.RegisterRequestDto; +import fr.inote.inote_api.dto.SignInRequestDto; +import fr.inote.inote_api.dto.SignInResponseDto; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.entity.Validation; +import fr.inote.inote_api.repository.JwtRepository; +import fr.inote.inote_api.repository.RoleRepository; +import fr.inote.inote_api.repository.UserRepository; +import fr.inote.inote_api.repository.ValidationRepository; + import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -55,10 +56,10 @@ import java.util.UUID; import java.util.concurrent.TimeUnit; -import static fr.inote.inoteApi.ConstantsForTests.*; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.AUTHORIZATION; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.BEARER; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.EMAIL_SUBJECT_ACTIVATION_CODE; +import static fr.inote.inote_api.ConstantsForTests.*; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.AUTHORIZATION; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.BEARER; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.EMAIL_SUBJECT_ACTIVATION_CODE; import static java.util.UUID.randomUUID; import static java.util.concurrent.TimeUnit.SECONDS; import static org.assertj.core.api.Assertions.assertThat; diff --git a/src/test/java/fr/inote/inoteApi/integrationTest/CommentController_IT.java b/src/test/java/fr/inote/inote_api/integrationTest/CommentController_IT.java similarity index 94% rename from src/test/java/fr/inote/inoteApi/integrationTest/CommentController_IT.java rename to src/test/java/fr/inote/inote_api/integrationTest/CommentController_IT.java index 29b31e9..9da60ec 100755 --- a/src/test/java/fr/inote/inoteApi/integrationTest/CommentController_IT.java +++ b/src/test/java/fr/inote/inote_api/integrationTest/CommentController_IT.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.integrationTest; +package fr.inote.inote_api.integrationTest; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; @@ -7,23 +7,24 @@ import com.icegreen.greenmail.util.GreenMailUtil; import com.icegreen.greenmail.util.ServerSetupTest; import com.jayway.jsonpath.JsonPath; -import fr.inote.inoteApi.crossCutting.constants.Endpoint; -import fr.inote.inoteApi.crossCutting.constants.MessagesEn; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.dto.ActivationRequestDto; -import fr.inote.inoteApi.dto.SignInRequestDto; -import fr.inote.inoteApi.dto.CommentRequestDto; -import fr.inote.inoteApi.dto.CommentResponseDto; -import fr.inote.inoteApi.dto.RegisterRequestDto; -import fr.inote.inoteApi.dto.SignInResponseDto; -import fr.inote.inoteApi.entity.Comment; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.repository.CommentRepository; -import fr.inote.inoteApi.repository.JwtRepository; -import fr.inote.inoteApi.repository.UserRepository; -import fr.inote.inoteApi.repository.ValidationRepository; -import fr.inote.inoteApi.service.impl.UserServiceImpl; + +import fr.inote.inote_api.cross_cutting.constants.Endpoint; +import fr.inote.inote_api.cross_cutting.constants.MessagesEn; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.dto.ActivationRequestDto; +import fr.inote.inote_api.dto.CommentRequestDto; +import fr.inote.inote_api.dto.CommentResponseDto; +import fr.inote.inote_api.dto.RegisterRequestDto; +import fr.inote.inote_api.dto.SignInRequestDto; +import fr.inote.inote_api.dto.SignInResponseDto; +import fr.inote.inote_api.entity.Comment; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.repository.CommentRepository; +import fr.inote.inote_api.repository.JwtRepository; +import fr.inote.inote_api.repository.UserRepository; +import fr.inote.inote_api.repository.ValidationRepository; +import fr.inote.inote_api.service.impl.UserServiceImpl; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -47,10 +48,10 @@ import java.util.Map; import java.util.UUID; -import static fr.inote.inoteApi.ConstantsForTests.*; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.AUTHORIZATION; -import static fr.inote.inoteApi.crossCutting.constants.HttpRequestBody.BEARER; -import static fr.inote.inoteApi.crossCutting.constants.MessagesEn.EMAIL_SUBJECT_ACTIVATION_CODE; +import static fr.inote.inote_api.ConstantsForTests.*; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.AUTHORIZATION; +import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.BEARER; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.EMAIL_SUBJECT_ACTIVATION_CODE; import static java.util.concurrent.TimeUnit.SECONDS; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; diff --git a/src/test/java/fr/inote/inoteApi/integrationTest/SpringSecurityWebAuxTestConfig.java b/src/test/java/fr/inote/inote_api/integrationTest/SpringSecurityWebAuxTestConfig.java similarity index 83% rename from src/test/java/fr/inote/inoteApi/integrationTest/SpringSecurityWebAuxTestConfig.java rename to src/test/java/fr/inote/inote_api/integrationTest/SpringSecurityWebAuxTestConfig.java index fbd6c31..ec5ec30 100755 --- a/src/test/java/fr/inote/inoteApi/integrationTest/SpringSecurityWebAuxTestConfig.java +++ b/src/test/java/fr/inote/inote_api/integrationTest/SpringSecurityWebAuxTestConfig.java @@ -1,9 +1,9 @@ -package fr.inote.inoteApi.integrationTest; +package fr.inote.inote_api.integrationTest; + +import static fr.inote.inote_api.ConstantsForTests.*; import java.util.List; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.entity.Role; import org.springframework.boot.test.context.TestConfiguration; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; @@ -12,7 +12,8 @@ import org.springframework.security.core.userdetails.UserDetailsService; import org.springframework.security.provisioning.InMemoryUserDetailsManager; -import static fr.inote.inoteApi.ConstantsForTests.*; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.entity.Role; @TestConfiguration public class SpringSecurityWebAuxTestConfig { diff --git a/src/test/java/fr/inote/inoteApi/repository/JwtRepositoryTest.java b/src/test/java/fr/inote/inote_api/repository/JwtRepositoryTest.java similarity index 97% rename from src/test/java/fr/inote/inoteApi/repository/JwtRepositoryTest.java rename to src/test/java/fr/inote/inote_api/repository/JwtRepositoryTest.java index 6938899..7efeac1 100755 --- a/src/test/java/fr/inote/inoteApi/repository/JwtRepositoryTest.java +++ b/src/test/java/fr/inote/inote_api/repository/JwtRepositoryTest.java @@ -1,10 +1,5 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.security.Jwt; -import fr.inote.inoteApi.crossCutting.security.RefreshToken; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; import io.jsonwebtoken.Claims; import io.jsonwebtoken.Jwts; import io.jsonwebtoken.SignatureAlgorithm; @@ -20,6 +15,16 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.test.context.ActiveProfiles; + +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.security.Jwt; +import fr.inote.inote_api.cross_cutting.security.RefreshToken; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.repository.JwtRepository; +import fr.inote.inote_api.repository.RoleRepository; +import fr.inote.inote_api.repository.UserRepository; + import org.springframework.boot.jdbc.EmbeddedDatabaseConnection; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; @@ -31,8 +36,8 @@ import java.util.Optional; import java.util.stream.Stream; +import static fr.inote.inote_api.ConstantsForTests.*; import static org.assertj.core.api.Assertions.assertThat; -import static fr.inote.inoteApi.ConstantsForTests.*; /** * Unit tests of repository JwtRepository diff --git a/src/test/java/fr/inote/inoteApi/repository/RefreshTokenRepositoryTest.java b/src/test/java/fr/inote/inote_api/repository/RefreshTokenRepositoryTest.java similarity index 94% rename from src/test/java/fr/inote/inoteApi/repository/RefreshTokenRepositoryTest.java rename to src/test/java/fr/inote/inote_api/repository/RefreshTokenRepositoryTest.java index cb6edab..99a683b 100755 --- a/src/test/java/fr/inote/inoteApi/repository/RefreshTokenRepositoryTest.java +++ b/src/test/java/fr/inote/inote_api/repository/RefreshTokenRepositoryTest.java @@ -1,6 +1,5 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; -import fr.inote.inoteApi.crossCutting.security.RefreshToken; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -8,6 +7,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.test.context.ActiveProfiles; + +import fr.inote.inote_api.cross_cutting.security.RefreshToken; +import fr.inote.inote_api.repository.RefreshTokenRepository; + import org.springframework.boot.jdbc.EmbeddedDatabaseConnection; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; diff --git a/src/test/java/fr/inote/inoteApi/repository/RoleRepositoryTest.java b/src/test/java/fr/inote/inote_api/repository/RoleRepositoryTest.java similarity index 94% rename from src/test/java/fr/inote/inoteApi/repository/RoleRepositoryTest.java rename to src/test/java/fr/inote/inote_api/repository/RoleRepositoryTest.java index e1fdb6a..509ad00 100755 --- a/src/test/java/fr/inote/inoteApi/repository/RoleRepositoryTest.java +++ b/src/test/java/fr/inote/inote_api/repository/RoleRepositoryTest.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -12,10 +12,12 @@ import static org.assertj.core.api.Assertions.assertThat; import java.util.Optional; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.entity.Role; import org.springframework.test.context.ActiveProfiles; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.repository.RoleRepository; + /** * Unit tests of repository * diff --git a/src/test/java/fr/inote/inoteApi/repository/UserRepositoryTest.java b/src/test/java/fr/inote/inote_api/repository/UserRepositoryTest.java similarity index 93% rename from src/test/java/fr/inote/inoteApi/repository/UserRepositoryTest.java rename to src/test/java/fr/inote/inote_api/repository/UserRepositoryTest.java index 5837722..73e644c 100755 --- a/src/test/java/fr/inote/inoteApi/repository/UserRepositoryTest.java +++ b/src/test/java/fr/inote/inote_api/repository/UserRepositoryTest.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; @@ -11,16 +11,19 @@ import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import static fr.inote.inote_api.ConstantsForTests.*; import static org.assertj.core.api.Assertions.assertThat; import java.util.Optional; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; import org.springframework.test.context.ActiveProfiles; -import static fr.inote.inoteApi.ConstantsForTests.*; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.repository.RoleRepository; +import fr.inote.inote_api.repository.UserRepository; + import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; diff --git a/src/test/java/fr/inote/inoteApi/repository/ValidationRepositoryTest.java b/src/test/java/fr/inote/inote_api/repository/ValidationRepositoryTest.java similarity index 94% rename from src/test/java/fr/inote/inoteApi/repository/ValidationRepositoryTest.java rename to src/test/java/fr/inote/inote_api/repository/ValidationRepositoryTest.java index de6fe34..5ced465 100755 --- a/src/test/java/fr/inote/inoteApi/repository/ValidationRepositoryTest.java +++ b/src/test/java/fr/inote/inote_api/repository/ValidationRepositoryTest.java @@ -1,9 +1,5 @@ -package fr.inote.inoteApi.repository; +package fr.inote.inote_api.repository; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.entity.Validation; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -13,6 +9,15 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.test.context.ActiveProfiles; + +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.entity.Validation; +import fr.inote.inote_api.repository.RoleRepository; +import fr.inote.inote_api.repository.UserRepository; +import fr.inote.inote_api.repository.ValidationRepository; + import org.springframework.boot.jdbc.EmbeddedDatabaseConnection; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; @@ -21,7 +26,7 @@ import java.util.Optional; import java.util.Random; -import static fr.inote.inoteApi.ConstantsForTests.*; +import static fr.inote.inote_api.ConstantsForTests.*; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; diff --git a/src/test/java/fr/inote/inoteApi/service/impl/CommentServiceImplTest.java b/src/test/java/fr/inote/inote_api/service/impl/CommentServiceImplTest.java similarity index 92% rename from src/test/java/fr/inote/inoteApi/service/impl/CommentServiceImplTest.java rename to src/test/java/fr/inote/inote_api/service/impl/CommentServiceImplTest.java index 60f0b2f..882e465 100755 --- a/src/test/java/fr/inote/inoteApi/service/impl/CommentServiceImplTest.java +++ b/src/test/java/fr/inote/inote_api/service/impl/CommentServiceImplTest.java @@ -1,15 +1,5 @@ -package fr.inote.inoteApi.service.impl; - -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.exceptions.InoteEmptyMessageCommentException; -import fr.inote.inoteApi.dto.CommentRequestDto; -import fr.inote.inoteApi.dto.CommentResponseDto; -import fr.inote.inoteApi.entity.Comment; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.repository.CommentRepository; -import fr.inote.inoteApi.repository.UserRepository; -import fr.inote.inoteApi.service.CommentService; +package fr.inote.inote_api.service.impl; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -21,17 +11,29 @@ import org.springframework.security.core.context.SecurityContextHolder; import org.springframework.test.context.ActiveProfiles; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.InoteEmptyMessageCommentException; +import fr.inote.inote_api.dto.CommentRequestDto; +import fr.inote.inote_api.dto.CommentResponseDto; +import fr.inote.inote_api.entity.Comment; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.repository.CommentRepository; +import fr.inote.inote_api.repository.UserRepository; +import fr.inote.inote_api.service.CommentService; +import fr.inote.inote_api.service.impl.CommentServiceImpl; + import java.util.ArrayList; import java.util.List; import java.util.Optional; -import static fr.inote.inoteApi.ConstantsForTests.*; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.times; import static org.mockito.Mockito.verify; import static org.mockito.Mockito.when; +import static fr.inote.inote_api.ConstantsForTests.*; import static org.assertj.core.api.Assertions.*; /** diff --git a/src/test/java/fr/inote/inoteApi/service/impl/NotificationServiceImplTest.java b/src/test/java/fr/inote/inote_api/service/impl/NotificationServiceImplTest.java similarity index 97% rename from src/test/java/fr/inote/inoteApi/service/impl/NotificationServiceImplTest.java rename to src/test/java/fr/inote/inote_api/service/impl/NotificationServiceImplTest.java index 479c781..d6a2190 100755 --- a/src/test/java/fr/inote/inoteApi/service/impl/NotificationServiceImplTest.java +++ b/src/test/java/fr/inote/inote_api/service/impl/NotificationServiceImplTest.java @@ -1,4 +1,4 @@ -package fr.inote.inoteApi.service.impl; +package fr.inote.inote_api.service.impl; import static java.util.concurrent.TimeUnit.SECONDS; import static org.awaitility.Awaitility.await; @@ -17,10 +17,11 @@ import com.icegreen.greenmail.util.GreenMailUtil; import com.icegreen.greenmail.util.ServerSetupTest; -import fr.inote.inoteApi.crossCutting.exceptions.InoteInvalidEmailException; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.entity.Validation; -import fr.inote.inoteApi.service.NotificationService; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidEmailException; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.entity.Validation; +import fr.inote.inote_api.service.NotificationService; +import fr.inote.inote_api.service.impl.NotificationServiceImpl; import javax.mail.internet.MimeMessage; diff --git a/src/test/java/fr/inote/inoteApi/service/impl/RoleServiceImplTest.java b/src/test/java/fr/inote/inote_api/service/impl/RoleServiceImplTest.java similarity index 92% rename from src/test/java/fr/inote/inoteApi/service/impl/RoleServiceImplTest.java rename to src/test/java/fr/inote/inote_api/service/impl/RoleServiceImplTest.java index 1007273..dc60d42 100755 --- a/src/test/java/fr/inote/inoteApi/service/impl/RoleServiceImplTest.java +++ b/src/test/java/fr/inote/inote_api/service/impl/RoleServiceImplTest.java @@ -1,10 +1,4 @@ -package fr.inote.inoteApi.service.impl; - -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.exceptions.InoteUserException; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.repository.RoleRepository; -import fr.inote.inoteApi.service.RoleService; +package fr.inote.inote_api.service.impl; import org.junit.jupiter.api.*; import org.junit.jupiter.api.extension.ExtendWith; @@ -14,6 +8,13 @@ import org.mockito.junit.jupiter.MockitoExtension; import org.springframework.test.context.ActiveProfiles; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.InoteUserException; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.repository.RoleRepository; +import fr.inote.inote_api.service.RoleService; +import fr.inote.inote_api.service.impl.RoleServiceImpl; + import java.util.ArrayList; import java.util.List; import java.util.Optional; diff --git a/src/test/java/fr/inote/inoteApi/service/impl/UserServiceImplTest.java b/src/test/java/fr/inote/inote_api/service/impl/UserServiceImplTest.java similarity index 97% rename from src/test/java/fr/inote/inoteApi/service/impl/UserServiceImplTest.java rename to src/test/java/fr/inote/inote_api/service/impl/UserServiceImplTest.java index b8348e2..e4ef30f 100755 --- a/src/test/java/fr/inote/inoteApi/service/impl/UserServiceImplTest.java +++ b/src/test/java/fr/inote/inote_api/service/impl/UserServiceImplTest.java @@ -1,6 +1,6 @@ -package fr.inote.inoteApi.service.impl; +package fr.inote.inote_api.service.impl; -import static fr.inote.inoteApi.ConstantsForTests.*; +import static fr.inote.inote_api.ConstantsForTests.*; import static org.assertj.core.api.Assertions.*; import static org.junit.jupiter.api.Assertions.*; import static org.mockito.ArgumentMatchers.any; @@ -13,10 +13,6 @@ import java.time.temporal.ChronoUnit; import java.util.Optional; -import fr.inote.inoteApi.crossCutting.exceptions.*; -import fr.inote.inoteApi.entity.Validation; -import fr.inote.inoteApi.repository.ValidationRepository; -import fr.inote.inoteApi.service.ValidationService; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; @@ -27,15 +23,20 @@ import org.springframework.mail.MailException; import org.springframework.security.core.userdetails.UsernameNotFoundException; import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder; - -import fr.inote.inoteApi.service.UserService; -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.repository.RoleRepository; -import fr.inote.inoteApi.repository.UserRepository; import org.springframework.test.context.ActiveProfiles; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.*; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.entity.Validation; +import fr.inote.inote_api.repository.RoleRepository; +import fr.inote.inote_api.repository.UserRepository; +import fr.inote.inote_api.repository.ValidationRepository; +import fr.inote.inote_api.service.UserService; +import fr.inote.inote_api.service.ValidationService; +import fr.inote.inote_api.service.impl.UserServiceImpl; + /** * Unit tests of service UserService * diff --git a/src/test/java/fr/inote/inoteApi/service/impl/ValidationServiceImplTest.java b/src/test/java/fr/inote/inote_api/service/impl/ValidationServiceImplTest.java similarity index 88% rename from src/test/java/fr/inote/inoteApi/service/impl/ValidationServiceImplTest.java rename to src/test/java/fr/inote/inote_api/service/impl/ValidationServiceImplTest.java index a40f594..e161753 100755 --- a/src/test/java/fr/inote/inoteApi/service/impl/ValidationServiceImplTest.java +++ b/src/test/java/fr/inote/inote_api/service/impl/ValidationServiceImplTest.java @@ -1,13 +1,5 @@ -package fr.inote.inoteApi.service.impl; - -import fr.inote.inoteApi.crossCutting.enums.RoleEnum; -import fr.inote.inoteApi.crossCutting.exceptions.InoteInvalidEmailException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteMailException; -import fr.inote.inoteApi.crossCutting.exceptions.InoteValidationNotFoundException; -import fr.inote.inoteApi.entity.Role; -import fr.inote.inoteApi.entity.User; -import fr.inote.inoteApi.entity.Validation; -import fr.inote.inoteApi.repository.ValidationRepository; +package fr.inote.inote_api.service.impl; + import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; @@ -17,18 +9,28 @@ import org.springframework.mail.MailException; import org.springframework.test.context.ActiveProfiles; +import fr.inote.inote_api.cross_cutting.enums.RoleEnum; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidEmailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteMailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteValidationNotFoundException; +import fr.inote.inote_api.entity.Role; +import fr.inote.inote_api.entity.User; +import fr.inote.inote_api.entity.Validation; +import fr.inote.inote_api.repository.ValidationRepository; +import fr.inote.inote_api.service.ValidationService; +import fr.inote.inote_api.service.impl.NotificationServiceImpl; +import fr.inote.inote_api.service.impl.ValidationServiceImpl; + import java.time.Instant; import java.time.temporal.ChronoUnit; import java.util.Optional; -import static fr.inote.inoteApi.ConstantsForTests.*; +import static fr.inote.inote_api.ConstantsForTests.*; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.catchThrowable; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; -import fr.inote.inoteApi.service.ValidationService; - /** * Unit tests of service ValidationServiceImplTest * From 299dec4c50e1d130e4e0063c198c79a73d78c7bb Mon Sep 17 00:00:00 2001 From: FYHenry Date: Thu, 6 Jun 2024 23:53:07 +0200 Subject: [PATCH 4/9] Translated messages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Listes des textes à traduire. --- src/main/resources/i18n/messages.properties | 21 +++++++++++++++++++ .../resources/i18n/messages_fr.properties | 1 + 2 files changed, 22 insertions(+) create mode 100644 src/main/resources/i18n/messages.properties create mode 100644 src/main/resources/i18n/messages_fr.properties diff --git a/src/main/resources/i18n/messages.properties b/src/main/resources/i18n/messages.properties new file mode 100644 index 0000000..d1ce7c9 --- /dev/null +++ b/src/main/resources/i18n/messages.properties @@ -0,0 +1,21 @@ +hello = Hello +auth.REGISTER_OK_MAIL_SENDED = "Your Inote account has been created. Before you can use it, you need to activate it via the e-mail we've just sent you." +auth.REGISTER_ERROR_USER_ALREADY_EXISTS = "Account creation impossible. A user with this email address is already registered." +activation.ACTIVATION_NEED_ACTIVATION = "Inote Notification Service\n\nYour request was successful. To complete the operation, please retrieve the activation code sent to your mailbox.\n\nWishing you a good day." +email.EMAIL_ERROR_INVALID_EMAIL_FORMAT = "Invalid email format." +email.EMAIL_ERROR_INVALID_PASSWORD_FORMAT = "The password provided does not comply with security rules." +email.EMAIL_SUBJECT_ACTIVATION_CODE = "Subject : Activation code" +validations.VALIDATION_ERROR_NOT_FOUND = "The Validation was not found in database" +validations.VALIDATION_ERROR_VALIDATION_IS_EXPIRED = "The validation is expired" +user.USER_ERROR_USER_NOT_FOUND = "User not found in database" +user.ACTIVATION_OF_USER_OK = "User activation succeed" +user.USER_SIGNOUT_SUCCESS = "User deconnection success" +user.USER_NOT_AUTHENTICATED = "User authentication failed" +roles.ROLE_ERROR_NOT_FOUND = "The asked role doesn't exists in database" +roles.NEW_PASSWORD_SUCCESS = "The new password user affectation has been success" +token.TOKEN_ERROR_NOT_FOUND = "Token was not found" +token.TOKEN_ERROR_REFRESH_TOKEN_EXPIRED = "The refresh token is expired" +comment.COMMENT_ERROR_MESSAGE_IS_EMPTY = "The comment you wish to post contains no message." +comment.EMAIL_ERROR_POSSIBLE_SMTP_SERVEUR_NOT_CONFIGURED = "The email could not be sent.\nIt's very likely that the smtp server is misconfigured.\n==> If you are in dev mode, have you started \"smtpServer_simul_run.sh\" (located in the root folder of the complete project)?" +miscelleanous.UNSPECIFIED_ERROR_HAS_OCCURED = "An unspecified error has occurred" +miscelleanous.EXPIRED_TOKEN = "The JWT has expired" \ No newline at end of file diff --git a/src/main/resources/i18n/messages_fr.properties b/src/main/resources/i18n/messages_fr.properties new file mode 100644 index 0000000..4641a77 --- /dev/null +++ b/src/main/resources/i18n/messages_fr.properties @@ -0,0 +1 @@ +hello=Bonjour \ No newline at end of file From ee5e6d0cebbe2d9d42833dc48cb0a677ef5b23a1 Mon Sep 17 00:00:00 2001 From: FYHenry Date: Thu, 6 Jun 2024 23:55:19 +0200 Subject: [PATCH 5/9] Default values --- .../META-INF/additional-spring-configuration-metadata.json | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/main/resources/META-INF/additional-spring-configuration-metadata.json b/src/main/resources/META-INF/additional-spring-configuration-metadata.json index 0b64caf..6ce9ec0 100755 --- a/src/main/resources/META-INF/additional-spring-configuration-metadata.json +++ b/src/main/resources/META-INF/additional-spring-configuration-metadata.json @@ -3,6 +3,7 @@ { "name": "inote.backend.mail.notreply", "type": "java.lang.String", + "defaultValue": "notreply@inote.fr", "description": "E-mail address of remote SMTP server" }, { @@ -13,11 +14,13 @@ { "name": "jwt.jwtValidityRefreshTokenAdditionalTimeToTokenInSeconds", "type": "java.lang.Integer", + "defaultValue": 3600, "description": "A description for 'jwt.jwtValidityRefreshTokenAdditionalTimeToTokenInSeconds'" }, { "name": "jwt.validyTokenTimeInSeconds", "type": "java.lang.Integer", + "defaultValue": 3600, "description": "A description for 'jwt.validyTokenTimeInSeconds'" }, { From 0ee9b318958a01a001a5659b6e539f79ccf26d9f Mon Sep 17 00:00:00 2001 From: FYHenry Date: Thu, 6 Jun 2024 23:56:19 +0200 Subject: [PATCH 6/9] Java-documented --- .../inote_api/cross_cutting/security/LocaleConfig.java | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java index 2508de6..aaacae3 100644 --- a/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java @@ -7,6 +7,14 @@ import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver; +/** Locale configuration + * + * @author FYHenry + * @date 06/05/2024 + * + *

Implements automatic localization by Accept-Language HTTP header.

+ *

The messages resources are in the i18n directory.

+ */ @Configuration public class LocaleConfig { @Bean From 97149581c535bf300d4694ad2254a39d3cf8cef7 Mon Sep 17 00:00:00 2001 From: FYHenry Date: Thu, 6 Jun 2024 23:56:48 +0200 Subject: [PATCH 7/9] More explicite imports. --- .../advice/ApplicationControllerAdvice.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java b/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java index 193f404..83d8d89 100755 --- a/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java +++ b/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java @@ -6,13 +6,25 @@ import org.springframework.web.bind.annotation.RestControllerAdvice; import fr.inote.inote_api.cross_cutting.constants.MessagesEn; -import fr.inote.inote_api.cross_cutting.exceptions.*; +import fr.inote.inote_api.cross_cutting.exceptions.InoteEmptyMessageCommentException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteExistingEmailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidEmailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidPasswordFormatException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteJwtNotFoundException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteNotAuthenticatedUserException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteRoleNotFoundException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteUserNotFoundException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteValidationExpiredException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteValidationNotFoundException; import io.jsonwebtoken.ExpiredJwtException; import io.jsonwebtoken.MalformedJwtException; import io.jsonwebtoken.security.SignatureException; import lombok.extern.slf4j.Slf4j; -import static org.springframework.http.HttpStatus.*; +import static org.springframework.http.HttpStatus.BAD_REQUEST; +import static org.springframework.http.HttpStatus.NOT_ACCEPTABLE; +import static org.springframework.http.HttpStatus.NOT_FOUND; +import static org.springframework.http.HttpStatus.UNAUTHORIZED; import org.apache.tomcat.websocket.AuthenticationException; From 5136aaf0c555740ed55be305ac4eeeb8cc6fc824 Mon Sep 17 00:00:00 2001 From: FYHenry Date: Fri, 7 Jun 2024 02:04:30 +0200 Subject: [PATCH 8/9] Trying to translate french version --- requests.http | 2 + .../inote_api/controller/AuthController.java | 42 +++++++++++++++---- .../InoteExistingEmailException.java | 19 +++++++-- 3 files changed, 52 insertions(+), 11 deletions(-) diff --git a/requests.http b/requests.http index 3fa3ab6..94261f1 100755 --- a/requests.http +++ b/requests.http @@ -16,6 +16,7 @@ # http://localhost:5000 POST http://localhost:8080/api/auth/register HTTP/1.1 Content-Type: {{contentType}} +Accept-Language: fr { "pseudo":"{{pseudo}}", @@ -28,6 +29,7 @@ Content-Type: {{contentType}} # or open fictionous mail box http://localhost:5000 (smtp-dev must be running) POST http://localhost:8080/api/auth/activation HTTP/1.1 Content-Type: {{contentType}} +Accept-Language: fr { "code":"231978" diff --git a/src/main/java/fr/inote/inote_api/controller/AuthController.java b/src/main/java/fr/inote/inote_api/controller/AuthController.java index 0e30f35..81e1550 100755 --- a/src/main/java/fr/inote/inote_api/controller/AuthController.java +++ b/src/main/java/fr/inote/inote_api/controller/AuthController.java @@ -1,5 +1,6 @@ package fr.inote.inote_api.controller; +import org.springframework.context.support.ResourceBundleMessageSource; import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatusCode; import org.springframework.http.ResponseEntity; @@ -14,6 +15,7 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestHeader; import org.springframework.web.bind.annotation.RestController; import fr.inote.inote_api.cross_cutting.constants.Endpoint; @@ -24,6 +26,7 @@ import fr.inote.inote_api.entity.User; import fr.inote.inote_api.service.impl.UserServiceImpl; +import java.util.Locale; import java.util.Map; import static fr.inote.inote_api.cross_cutting.constants.HttpRequestBody.BEARER; @@ -81,14 +84,17 @@ public class AuthController { private final AuthenticationManager authenticationManager; private final UserServiceImpl userService; private final JwtServiceImpl jwtService; + private final ResourceBundleMessageSource source; public AuthController( AuthenticationManager authenticationManager, UserServiceImpl userService, - JwtServiceImpl jwtService) { + JwtServiceImpl jwtService, + ResourceBundleMessageSource source) { this.authenticationManager = authenticationManager; this.userService = userService; this.jwtService = jwtService; + this.source = source; } /* PUBLIC METHODS */ @@ -112,9 +118,17 @@ public AuthController( */ @PostMapping(path = Endpoint.REGISTER) - public ResponseEntity register(@RequestBody RegisterRequestDto registerRequestDto) - throws MailException, InoteExistingEmailException, InoteInvalidEmailException, InoteRoleNotFoundException, - InoteInvalidPasswordFormatException, InoteMailException { + public ResponseEntity register( + @RequestHeader(name = "Accept-Language", required = false) + final Locale locale, + @RequestBody + final RegisterRequestDto registerRequestDto) + throws MailException, + InoteExistingEmailException, + InoteInvalidEmailException, + InoteRoleNotFoundException, + InoteInvalidPasswordFormatException, + InoteMailException { User userToRegister = User.builder() .email(registerRequestDto.username()) @@ -126,7 +140,10 @@ public ResponseEntity register(@RequestBody RegisterRequestDto registerR return ResponseEntity .status(HttpStatusCode.valueOf(201)) - .body(MessagesEn.ACTIVATION_NEED_ACTIVATION); + .body(source.getMessage( + "activation.ACTIVATION_NEED_ACTIVATION", + null, + locale)); } /** @@ -145,14 +162,23 @@ public ResponseEntity register(@RequestBody RegisterRequestDto registerR * @date 19-05-2024 */ @PostMapping(path = Endpoint.ACTIVATION) - public ResponseEntity activation(@RequestBody ActivationRequestDto activationRequestDto) - throws InoteValidationNotFoundException, InoteValidationExpiredException, InoteUserNotFoundException { + public ResponseEntity activation( + @RequestHeader(name = "Accept-Language", required = false) + final Locale locale, + @RequestBody + ActivationRequestDto activationRequestDto) + throws InoteValidationNotFoundException, + InoteValidationExpiredException, + InoteUserNotFoundException { this.userService.activation(activationRequestDto.code()); return ResponseEntity .status(OK) - .body(MessagesEn.ACTIVATION_OF_USER_OK); + .body(source.getMessage( + "user.ACTIVATION_OF_USER_OK", + null, + locale)); } diff --git a/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java index 85fe27b..b8dbe4c 100755 --- a/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java @@ -1,10 +1,23 @@ package fr.inote.inote_api.cross_cutting.exceptions; -import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.REGISTER_ERROR_USER_ALREADY_EXISTS; +import java.util.Locale; + +import org.springframework.context.support.ResourceBundleMessageSource; public class InoteExistingEmailException extends Exception{ - public InoteExistingEmailException() { - super(REGISTER_ERROR_USER_ALREADY_EXISTS); + + public InoteExistingEmailException(){ + super(); + } + + @Override + public String getLocalizedMessage(){ + final String source = new ResourceBundleMessageSource().getMessage( + "auth.REGISTER_ERROR_USER_ALREADY_EXISTS", + new Object[]{}, + Locale.getDefault() + ); + return source; } } From fd5688f507693c23e1582dedbb1a3b60e7a0b2b1 Mon Sep 17 00:00:00 2001 From: FYHenry Date: Fri, 7 Jun 2024 23:23:55 +0200 Subject: [PATCH 9/9] =?UTF-8?q?Created=20experimental=20=E2=80=9Chello?= =?UTF-8?q?=E2=80=9D=20URL?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Tentative pour avoir une réponse HTTP « localisée ». Traduction réussie en Français mais pas en Anglais. :-/ --- requests.http | 5 ++ .../inote_api/controller/HelloController.java | 33 ++++++++++++ .../advice/ApplicationControllerAdvice.java | 51 ++++++++++++------- .../InoteExistingEmailException.java | 18 +------ .../cross_cutting/security/LocaleConfig.java | 20 ++++---- .../security/SecurityConfig.java | 1 + .../cross_cutting/security/WebConfig.java | 25 +++++++-- src/main/resources/i18n/messages.properties | 2 +- .../resources/i18n/messages_fr.properties | 2 +- .../service/impl/UserServiceImplTest.java | 28 +++++++--- 10 files changed, 130 insertions(+), 55 deletions(-) create mode 100644 src/main/java/fr/inote/inote_api/controller/HelloController.java diff --git a/requests.http b/requests.http index 94261f1..9e1a854 100755 --- a/requests.http +++ b/requests.http @@ -5,6 +5,11 @@ @passwordBis = chichi@@YYY14646_ @email = sangoku@kame-house.com +# HELLO ! + +GET http://localhost:8080/api/hello?user=Truc HTTP/1.1 +Accept-Language: en + # USER ACCOUNT #================================================================= diff --git a/src/main/java/fr/inote/inote_api/controller/HelloController.java b/src/main/java/fr/inote/inote_api/controller/HelloController.java new file mode 100644 index 0000000..bb3eaa6 --- /dev/null +++ b/src/main/java/fr/inote/inote_api/controller/HelloController.java @@ -0,0 +1,33 @@ +package fr.inote.inote_api.controller; + +import java.util.Locale; + +import org.springframework.context.MessageSource; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestHeader; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class HelloController { + + private final MessageSource source; + + public HelloController(MessageSource source){ + this.source = source; + } + + @GetMapping(path = "/api/hello") + public ResponseEntity hello( + @RequestHeader(name = "Accept-Language", required = false) + final Locale locale, + @RequestParam(name = "user", required = false, defaultValue = "") + final String USER){ + return ResponseEntity + .status(HttpStatus.OK) + .header("Content-Type", "text/plain") + .body(source.getMessage("hello", new Object[]{USER}, locale)); + } +} diff --git a/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java b/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java index 83d8d89..505ace7 100755 --- a/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java +++ b/src/main/java/fr/inote/inote_api/controller/advice/ApplicationControllerAdvice.java @@ -1,11 +1,11 @@ package fr.inote.inote_api.controller.advice; +import org.springframework.context.MessageSource; import org.springframework.http.ProblemDetail; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.web.bind.annotation.ExceptionHandler; import org.springframework.web.bind.annotation.RestControllerAdvice; -import fr.inote.inote_api.cross_cutting.constants.MessagesEn; import fr.inote.inote_api.cross_cutting.exceptions.InoteEmptyMessageCommentException; import fr.inote.inote_api.cross_cutting.exceptions.InoteExistingEmailException; import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidEmailException; @@ -26,6 +26,8 @@ import static org.springframework.http.HttpStatus.NOT_FOUND; import static org.springframework.http.HttpStatus.UNAUTHORIZED; +import java.util.Locale; + import org.apache.tomcat.websocket.AuthenticationException; /** @@ -39,6 +41,12 @@ @RestControllerAdvice // Exception Centralized manager public class ApplicationControllerAdvice { + private final MessageSource messageSource; + + public ApplicationControllerAdvice(MessageSource messageSource){ + this.messageSource = messageSource; + } + /** * Handle exception when jwt is malformed * @@ -51,7 +59,7 @@ public class ApplicationControllerAdvice { private ProblemDetail MalformedJwtExceptionHandler(MalformedJwtException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getLocalizedMessage()); } /** @@ -66,7 +74,7 @@ private ProblemDetail MalformedJwtExceptionHandler(MalformedJwtException ex) { private ProblemDetail SignatureExceptionHandler(SignatureException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getLocalizedMessage()); } /** @@ -81,7 +89,7 @@ private ProblemDetail SignatureExceptionHandler(SignatureException ex) { private ProblemDetail BadCredentialsExceptionHandler(BadCredentialsException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getLocalizedMessage()); } /** @@ -96,7 +104,7 @@ private ProblemDetail BadCredentialsExceptionHandler(BadCredentialsException ex) private ProblemDetail AuthenticationExceptionHandler(AuthenticationException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getLocalizedMessage()); } @@ -110,10 +118,10 @@ private ProblemDetail AuthenticationExceptionHandler(AuthenticationException ex) * @date 19-05-2024 */ @ExceptionHandler(value = InoteExistingEmailException.class) - private ProblemDetail InoteExistingEmailExceptionHandler(Exception ex) { + private ProblemDetail InoteExistingEmailExceptionHandler(Exception ex, Locale locale) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(NOT_ACCEPTABLE, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(NOT_ACCEPTABLE, ex.getLocalizedMessage()); } /** @@ -128,7 +136,7 @@ private ProblemDetail InoteExistingEmailExceptionHandler(Exception ex) { private ProblemDetail InoteValidationNotFoundExceptionHandler(Exception ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(NOT_FOUND, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(NOT_FOUND, ex.getLocalizedMessage()); } /** @@ -143,7 +151,7 @@ private ProblemDetail InoteValidationNotFoundExceptionHandler(Exception ex) { private ProblemDetail InoteValidationExpiredExceptionHandler(Exception ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(NOT_FOUND, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(NOT_FOUND, ex.getLocalizedMessage()); } /** @@ -158,7 +166,7 @@ private ProblemDetail InoteValidationExpiredExceptionHandler(Exception ex) { private ProblemDetail InoteUserNotFoundExceptionHandler(Exception ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(NOT_FOUND, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(NOT_FOUND, ex.getLocalizedMessage()); } /** @@ -173,7 +181,7 @@ private ProblemDetail InoteUserNotFoundExceptionHandler(Exception ex) { private ProblemDetail InoteInvalidEmailExceptiondeHandler(InoteInvalidEmailException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(BAD_REQUEST, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(BAD_REQUEST, ex.getLocalizedMessage()); } /** @@ -188,7 +196,7 @@ private ProblemDetail InoteInvalidEmailExceptiondeHandler(InoteInvalidEmailExcep private ProblemDetail InoteInvalidPasswordFormatExceptionHandler(InoteInvalidPasswordFormatException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(BAD_REQUEST, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(BAD_REQUEST, ex.getLocalizedMessage()); } /** @@ -203,7 +211,7 @@ private ProblemDetail InoteInvalidPasswordFormatExceptionHandler(InoteInvalidPas private ProblemDetail InoteRoleNotFoundExceptionHandler(InoteRoleNotFoundException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(BAD_REQUEST, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(BAD_REQUEST, ex.getLocalizedMessage()); } /** @@ -218,7 +226,7 @@ private ProblemDetail InoteRoleNotFoundExceptionHandler(InoteRoleNotFoundExcepti private ProblemDetail InoteJwtNotFoundException(InoteJwtNotFoundException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(BAD_REQUEST, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(BAD_REQUEST, ex.getLocalizedMessage()); } /** @@ -233,7 +241,7 @@ private ProblemDetail InoteJwtNotFoundException(InoteJwtNotFoundException ex) { private ProblemDetail InoteEmptyMessageCommentExceptionHandler(InoteEmptyMessageCommentException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(NOT_ACCEPTABLE, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(NOT_ACCEPTABLE, ex.getLocalizedMessage()); } /** @@ -248,7 +256,7 @@ private ProblemDetail InoteEmptyMessageCommentExceptionHandler(InoteEmptyMessage @ExceptionHandler(value = InoteNotAuthenticatedUserException.class) private ProblemDetail InoteNotAuthenticatedUserExceptionHandler(InoteNotAuthenticatedUserException ex) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getMessage()); + return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, ex.getLocalizedMessage()); } /** @@ -260,9 +268,14 @@ private ProblemDetail InoteNotAuthenticatedUserExceptionHandler(InoteNotAuthenti * @since 2024-05-30 */ @ExceptionHandler(value = ExpiredJwtException.class) - private ProblemDetail InoteExpiredJwtExceptionHandler(ExpiredJwtException ex) { + private ProblemDetail InoteExpiredJwtExceptionHandler(ExpiredJwtException ex, Locale locale) { log.error(ex.getMessage(), ex); - return ProblemDetail.forStatusAndDetail(UNAUTHORIZED, MessagesEn.EXPIRED_TOKEN); + return ProblemDetail.forStatusAndDetail( + UNAUTHORIZED, + messageSource.getMessage( + "miscelleanous.EXPIRED_TOKEN", + null, + locale)); } /** @@ -284,6 +297,6 @@ public ProblemDetail inoteDefaultExceptionHandler(Exception ex) { // return status code BAD_REQUEST, // return reason - ex.getMessage()); + ex.getLocalizedMessage()); } } diff --git a/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java index b8dbe4c..86e7b1d 100755 --- a/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/exceptions/InoteExistingEmailException.java @@ -1,23 +1,9 @@ package fr.inote.inote_api.cross_cutting.exceptions; -import java.util.Locale; - -import org.springframework.context.support.ResourceBundleMessageSource; +import static fr.inote.inote_api.cross_cutting.constants.MessagesEn.REGISTER_ERROR_USER_ALREADY_EXISTS; public class InoteExistingEmailException extends Exception{ - public InoteExistingEmailException(){ - super(); - } - - @Override - public String getLocalizedMessage(){ - final String source = new ResourceBundleMessageSource().getMessage( - "auth.REGISTER_ERROR_USER_ALREADY_EXISTS", - new Object[]{}, - Locale.getDefault() - ); - return source; + super(REGISTER_ERROR_USER_ALREADY_EXISTS); } - } diff --git a/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java index aaacae3..5e0f8e8 100644 --- a/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/LocaleConfig.java @@ -2,9 +2,11 @@ import java.util.Locale; +import org.springframework.context.MessageSource; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.support.ResourceBundleMessageSource; +import org.springframework.web.servlet.LocaleResolver; import org.springframework.web.servlet.i18n.AcceptHeaderLocaleResolver; /** Locale configuration @@ -18,17 +20,17 @@ @Configuration public class LocaleConfig { @Bean - public AcceptHeaderLocaleResolver getLocaleResolver() { - final AcceptHeaderLocaleResolver acceptHeaderLocaleResolver = new AcceptHeaderLocaleResolver(); - acceptHeaderLocaleResolver.setDefaultLocale(Locale.ENGLISH); - return acceptHeaderLocaleResolver; + public LocaleResolver localeResolver() { + final AcceptHeaderLocaleResolver localeResolver = new AcceptHeaderLocaleResolver(); + //localeResolver.setDefaultLocale(Locale.ENGLISH); + return localeResolver; } @Bean - public ResourceBundleMessageSource getMessageSource() { - final ResourceBundleMessageSource resourceBundleMessageSource = new ResourceBundleMessageSource(); - resourceBundleMessageSource.setBasename("i18n/messages"); - resourceBundleMessageSource.setDefaultEncoding("UTF-8"); - return resourceBundleMessageSource; + public MessageSource messageSource() { + final ResourceBundleMessageSource messageSource = new ResourceBundleMessageSource(); + messageSource.setBasename("i18n/messages"); + messageSource.setDefaultEncoding("UTF-8"); + return messageSource; } } diff --git a/src/main/java/fr/inote/inote_api/cross_cutting/security/SecurityConfig.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/SecurityConfig.java index e705d02..1b67bde 100755 --- a/src/main/java/fr/inote/inote_api/cross_cutting/security/SecurityConfig.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/SecurityConfig.java @@ -143,6 +143,7 @@ public SecurityFilterChain securityFilterChain(HttpSecurity httpSecurity) throws .requestMatchers(POST, Endpoint.CHANGE_PASSWORD).permitAll() .requestMatchers(POST, Endpoint.NEW_PASSWORD).permitAll() .requestMatchers(POST, Endpoint.REFRESH_TOKEN).permitAll() + .requestMatchers(GET, "/api/hello").permitAll() // -> Secured endpoints .requestMatchers(POST, Endpoint.GET_CURRENT_USER).permitAll() .requestMatchers(POST, Endpoint.SIGN_OUT).authenticated() diff --git a/src/main/java/fr/inote/inote_api/cross_cutting/security/WebConfig.java b/src/main/java/fr/inote/inote_api/cross_cutting/security/WebConfig.java index 8b53a3b..3460d05 100755 --- a/src/main/java/fr/inote/inote_api/cross_cutting/security/WebConfig.java +++ b/src/main/java/fr/inote/inote_api/cross_cutting/security/WebConfig.java @@ -1,9 +1,12 @@ package fr.inote.inote_api.cross_cutting.security; import org.springframework.beans.factory.annotation.Value; +import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; +import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.springframework.web.servlet.i18n.LocaleChangeInterceptor; import fr.inote.inote_api.cross_cutting.constants.Endpoint; @@ -38,6 +41,12 @@ public void addCorsMappings(CorsRegistry registry) { .allowedMethods("GET") .allowedHeaders("Content-Type", "Authorization") .exposedHeaders("Access-Control-Allow-Origin", "Access-Control-Allow-Credentials"); + + registry.addMapping("/api/hello") + .allowedOrigins(FRONTEND_HOST) + .allowedMethods("GET") + .allowedHeaders("Content-Type", "Authorization") + .exposedHeaders("Access-Control-Allow-Origin", "Access-Control-Allow-Credentials"); registry.addMapping(Endpoint.SIGN_OUT) .allowedOrigins(FRONTEND_HOST) @@ -56,9 +65,19 @@ public void addCorsMappings(CorsRegistry registry) { .allowedMethods("POST") .allowedHeaders("Content-Type", "Authorization") .exposedHeaders("Access-Control-Allow-Origin", "Access-Control-Request-Method", "Access-Control-Request-Headers"); - - - } + } + + @Bean + public LocaleChangeInterceptor localeChangeInterceptor() { + LocaleChangeInterceptor localeChangeInterceptor = new LocaleChangeInterceptor(); + localeChangeInterceptor.setParamName("lang"); + return localeChangeInterceptor; + } + + @Override + public void addInterceptors(InterceptorRegistry registry){ + registry.addInterceptor(localeChangeInterceptor()); + } } // @Configuration diff --git a/src/main/resources/i18n/messages.properties b/src/main/resources/i18n/messages.properties index d1ce7c9..7e39ece 100644 --- a/src/main/resources/i18n/messages.properties +++ b/src/main/resources/i18n/messages.properties @@ -1,4 +1,4 @@ -hello = Hello +hello = Hello {0} auth.REGISTER_OK_MAIL_SENDED = "Your Inote account has been created. Before you can use it, you need to activate it via the e-mail we've just sent you." auth.REGISTER_ERROR_USER_ALREADY_EXISTS = "Account creation impossible. A user with this email address is already registered." activation.ACTIVATION_NEED_ACTIVATION = "Inote Notification Service\n\nYour request was successful. To complete the operation, please retrieve the activation code sent to your mailbox.\n\nWishing you a good day." diff --git a/src/main/resources/i18n/messages_fr.properties b/src/main/resources/i18n/messages_fr.properties index 4641a77..b862142 100644 --- a/src/main/resources/i18n/messages_fr.properties +++ b/src/main/resources/i18n/messages_fr.properties @@ -1 +1 @@ -hello=Bonjour \ No newline at end of file +hello=Bonjour {0} \ No newline at end of file diff --git a/src/test/java/fr/inote/inote_api/service/impl/UserServiceImplTest.java b/src/test/java/fr/inote/inote_api/service/impl/UserServiceImplTest.java index e4ef30f..e061a73 100755 --- a/src/test/java/fr/inote/inote_api/service/impl/UserServiceImplTest.java +++ b/src/test/java/fr/inote/inote_api/service/impl/UserServiceImplTest.java @@ -1,11 +1,21 @@ package fr.inote.inote_api.service.impl; -import static fr.inote.inote_api.ConstantsForTests.*; -import static org.assertj.core.api.Assertions.*; -import static org.junit.jupiter.api.Assertions.*; +import static fr.inote.inote_api.ConstantsForTests.REFERENCE_USER2_EMAIL; +import static fr.inote.inote_api.ConstantsForTests.REFERENCE_USER2_NAME; +import static fr.inote.inote_api.ConstantsForTests.REFERENCE_USER2_PASSWORD; +import static fr.inote.inote_api.ConstantsForTests.REFERENCE_USER_EMAIL; +import static fr.inote.inote_api.ConstantsForTests.REFERENCE_USER_NAME; +import static fr.inote.inote_api.ConstantsForTests.REFERENCE_USER_PASSWORD; +import static org.assertj.core.api.Assertions.assertThat; +import static org.assertj.core.api.Assertions.assertThatCode; +import static org.assertj.core.api.Assertions.assertThatExceptionOfType; +import static org.assertj.core.api.Assertions.catchThrowable; +import static org.junit.jupiter.api.Assertions.assertThrows; import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.anyString; -import static org.mockito.Mockito.*; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; @@ -26,7 +36,14 @@ import org.springframework.test.context.ActiveProfiles; import fr.inote.inote_api.cross_cutting.enums.RoleEnum; -import fr.inote.inote_api.cross_cutting.exceptions.*; +import fr.inote.inote_api.cross_cutting.exceptions.InoteExistingEmailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidEmailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteInvalidPasswordFormatException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteMailException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteRoleNotFoundException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteUserNotFoundException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteValidationExpiredException; +import fr.inote.inote_api.cross_cutting.exceptions.InoteValidationNotFoundException; import fr.inote.inote_api.entity.Role; import fr.inote.inote_api.entity.User; import fr.inote.inote_api.entity.Validation; @@ -35,7 +52,6 @@ import fr.inote.inote_api.repository.ValidationRepository; import fr.inote.inote_api.service.UserService; import fr.inote.inote_api.service.ValidationService; -import fr.inote.inote_api.service.impl.UserServiceImpl; /** * Unit tests of service UserService