From 5169d2d464863abd989f6a65f1fa6a4487e43787 Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Thu, 18 Jun 2026 00:45:40 +0100 Subject: [PATCH 1/2] gestion parametre frontend --- .../frontend/FonctionnaliteController.java | 183 +++++++++++++++++ .../frontend/ModuleController.java | 185 ++++++++++++++++++ ...ProfileModuleFonctionnaliteController.java | 184 +++++++++++++++++ .../entities/frontend/Fonctionnalite.java | 28 +++ .../fiscad/entities/frontend/ModuleApp.java | 31 +++ .../user/ProfileModuleFonctionnalite.java | 29 +++ .../frontend/FonctionnaliteServiceImpl.java | 74 +++++++ .../frontend/ModuleServiceImpl.java | 75 +++++++ ...rofileModuleFonctionnaliteServiceImpl.java | 77 ++++++++ .../frontend/FonctionnaliteService.java | 32 +++ .../interfaces/frontend/ModuleService.java | 30 +++ .../ProfileModuleFonctionnaliteService.java | 32 +++ .../crudweb/FonctionnalitePayloadWeb.java | 28 +++ .../request/crudweb/ModulePayloadWeb.java | 22 +++ ...ProfileModuleFonctionnalitePayloadWeb.java | 39 ++++ .../frontend/FonctionnaliteRepository.java | 128 ++++++++++++ .../frontend/ModuleRepository.java | 73 +++++++ ...ProfileModuleFonctionnaliteRepository.java | 161 +++++++++++++++ .../service/EntityFromPayLoadService.java | 68 ++++++- src/main/resources/application.properties | 4 +- 20 files changed, 1477 insertions(+), 6 deletions(-) create mode 100644 src/main/java/io/gmss/fiscad/controllers/frontend/FonctionnaliteController.java create mode 100644 src/main/java/io/gmss/fiscad/controllers/frontend/ModuleController.java create mode 100644 src/main/java/io/gmss/fiscad/controllers/user/ProfileModuleFonctionnaliteController.java create mode 100644 src/main/java/io/gmss/fiscad/entities/frontend/Fonctionnalite.java create mode 100644 src/main/java/io/gmss/fiscad/entities/frontend/ModuleApp.java create mode 100755 src/main/java/io/gmss/fiscad/entities/user/ProfileModuleFonctionnalite.java create mode 100644 src/main/java/io/gmss/fiscad/implementations/frontend/FonctionnaliteServiceImpl.java create mode 100644 src/main/java/io/gmss/fiscad/implementations/frontend/ModuleServiceImpl.java create mode 100644 src/main/java/io/gmss/fiscad/implementations/user/ProfileModuleFonctionnaliteServiceImpl.java create mode 100755 src/main/java/io/gmss/fiscad/interfaces/frontend/FonctionnaliteService.java create mode 100755 src/main/java/io/gmss/fiscad/interfaces/frontend/ModuleService.java create mode 100755 src/main/java/io/gmss/fiscad/interfaces/user/ProfileModuleFonctionnaliteService.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/request/crudweb/FonctionnalitePayloadWeb.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ModulePayloadWeb.java create mode 100644 src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ProfileModuleFonctionnalitePayloadWeb.java create mode 100755 src/main/java/io/gmss/fiscad/persistence/repositories/frontend/FonctionnaliteRepository.java create mode 100755 src/main/java/io/gmss/fiscad/persistence/repositories/frontend/ModuleRepository.java create mode 100755 src/main/java/io/gmss/fiscad/persistence/repositories/user/ProfileModuleFonctionnaliteRepository.java diff --git a/src/main/java/io/gmss/fiscad/controllers/frontend/FonctionnaliteController.java b/src/main/java/io/gmss/fiscad/controllers/frontend/FonctionnaliteController.java new file mode 100644 index 0000000..78f1d90 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/controllers/frontend/FonctionnaliteController.java @@ -0,0 +1,183 @@ +package io.gmss.fiscad.controllers.frontend; + + +import io.gmss.fiscad.exceptions.*; +import io.gmss.fiscad.interfaces.frontend.FonctionnaliteService; +import io.gmss.fiscad.paylaods.ApiResponse; +import io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.HttpClientErrorException; + +@AllArgsConstructor +@RestController +@RequestMapping(value = "api/fonctionnalite", produces = MediaType.APPLICATION_JSON_VALUE) +@SecurityRequirement(name = "bearer") +@Tag(name = "Fonctionnalite") +@CrossOrigin(origins = "*") +public class FonctionnaliteController { + + private final FonctionnaliteService fonctionnaliteService; + + private static final Logger logger = LoggerFactory.getLogger(FonctionnaliteController.class); + + + + @PostMapping("/create") + //@PreAuthorize("hasAuthority('CREATE_FONCTIONNALITE')") + public ResponseEntity createFonctionnalite(@RequestBody @Valid @Validated FonctionnalitePayloadWeb fonctionnalitePayLoadWeb) { + try { + fonctionnalitePayLoadWeb = fonctionnaliteService.createFonctionnalite(fonctionnalitePayLoadWeb); + return new ResponseEntity<>( + new ApiResponse<>(true, fonctionnalitePayLoadWeb, "Fonctionnalite créé avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @PutMapping("/update/{id}") + // @PreAuthorize("hasAuthority('UPDATE_FONCTIONNALITE')") + public ResponseEntity updateFonctionnalite(@PathVariable Long id, @RequestBody FonctionnalitePayloadWeb fonctionnalitePayLoadWeb) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, fonctionnaliteService.updateFonctionnalite(id,fonctionnalitePayLoadWeb), "Fonctionnalite mise à jour avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @DeleteMapping("/delete/{id}") + //@PreAuthorize("hasAuthority('DELETE_FONCTIONNALITE')") + public ResponseEntity deleteFonctionnalite(@PathVariable Long id) { + try { + fonctionnaliteService.deleteFonctionnalite(id); + return new ResponseEntity<>( + new ApiResponse<>(true, "Fonctionnalite supprimée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @GetMapping("/all") + // @PreAuthorize("hasAuthority('READ_FONCTIONNALITE')") + public ResponseEntity getAllFonctionnaliteList() { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, fonctionnaliteService.getFonctionnaliteListToDto(), "Liste des caractéristiques chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @GetMapping("/all/by-profil-id/{profilId}") + //@PreAuthorize("hasAuthority('READ_FONCTIONNALITE')") + public ResponseEntity getAllFonctionnaliteByProfilList(@PathVariable Long profilId) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, fonctionnaliteService.getAllFonctionnaliteByProfilIdToDto(profilId), "Liste des fonctionnalites chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + + + @GetMapping("/id/{id}") + //@PreAuthorize("hasAuthority('READ_FONCTIONNALITE')") + public ResponseEntity getFonctionnaliteById(@PathVariable Long id) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, fonctionnaliteService.getFonctionnaliteByIdToDto(id), "Fonctionnalite trouvée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } +} diff --git a/src/main/java/io/gmss/fiscad/controllers/frontend/ModuleController.java b/src/main/java/io/gmss/fiscad/controllers/frontend/ModuleController.java new file mode 100644 index 0000000..21bd112 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/controllers/frontend/ModuleController.java @@ -0,0 +1,185 @@ +package io.gmss.fiscad.controllers.frontend; + + +import io.gmss.fiscad.exceptions.*; +import io.gmss.fiscad.interfaces.frontend.ModuleService; +import io.gmss.fiscad.paylaods.ApiResponse; +import io.gmss.fiscad.paylaods.request.crudweb.ModulePayloadWeb; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.HttpClientErrorException; + +@AllArgsConstructor +@RestController +@RequestMapping(value = "api/module", produces = MediaType.APPLICATION_JSON_VALUE) +@SecurityRequirement(name = "bearer") +@Tag(name = "Module") +@CrossOrigin(origins = "*") +public class ModuleController { + + private final ModuleService moduleService; + + private static final Logger logger = LoggerFactory.getLogger(ModuleController.class); + + + + @PostMapping("/create") + // @PreAuthorize("hasAuthority('CREATE_MODULE')") + public ResponseEntity createModule(@RequestBody @Valid @Validated ModulePayloadWeb modulePayLoadWeb) { + try { + modulePayLoadWeb = moduleService.createModule(modulePayLoadWeb); + return new ResponseEntity<>( + new ApiResponse<>(true, modulePayLoadWeb, "Module créé avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @PutMapping("/update/{id}") + //@PreAuthorize("hasAuthority('UPDATE_MODULE')") + public ResponseEntity updateModule(@PathVariable Long id, @RequestBody ModulePayloadWeb modulePayLoadWeb) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, moduleService.updateModule(id,modulePayLoadWeb), "Module mise à jour avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @DeleteMapping("/delete/{id}") + // @PreAuthorize("hasAuthority('DELETE_MODULE')") + public ResponseEntity deleteModule(@PathVariable Long id) { + try { + moduleService.deleteModule(id); + return new ResponseEntity<>( + new ApiResponse<>(true, "Module supprimée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @GetMapping("/all") + //@PreAuthorize("hasAuthority('READ_MODULE')") + public ResponseEntity getAllModuleList() { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, moduleService.getModuleListToDto(), "Liste des caractéristiques chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @GetMapping("/all/by-profil-id/{profilId}") + //@PreAuthorize("hasAuthority('READ_MODULE')") + public ResponseEntity getAllModuleByProfilList(@PathVariable Long profilId) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, moduleService.getAllModuleByProfilIdToDto(profilId), "Liste des modules chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + + + @GetMapping("/id/{id}") + //@PreAuthorize("hasAuthority('READ_MODULE')") + public ResponseEntity getModuleById(@PathVariable Long id) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, moduleService.getModuleByIdToDto(id), "Module trouvée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } +} diff --git a/src/main/java/io/gmss/fiscad/controllers/user/ProfileModuleFonctionnaliteController.java b/src/main/java/io/gmss/fiscad/controllers/user/ProfileModuleFonctionnaliteController.java new file mode 100644 index 0000000..96e45f9 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/controllers/user/ProfileModuleFonctionnaliteController.java @@ -0,0 +1,184 @@ +package io.gmss.fiscad.controllers.user; + + +import io.gmss.fiscad.exceptions.*; +import io.gmss.fiscad.interfaces.user.ProfileModuleFonctionnaliteService; +import io.gmss.fiscad.interfaces.user.ProfileModuleFonctionnaliteService; +import io.gmss.fiscad.paylaods.ApiResponse; +import io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb; +import io.swagger.v3.oas.annotations.security.SecurityRequirement; +import io.swagger.v3.oas.annotations.tags.Tag; +import jakarta.validation.Valid; +import lombok.AllArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.HttpClientErrorException; + +@AllArgsConstructor +@RestController +@RequestMapping(value = "api/profile-module-fonctionnalite", produces = MediaType.APPLICATION_JSON_VALUE) +@SecurityRequirement(name = "bearer") +@Tag(name = "ProfileModuleFonctionnalite") +@CrossOrigin(origins = "*") +public class ProfileModuleFonctionnaliteController { + + private final ProfileModuleFonctionnaliteService profileModuleFonctionnaliteService; + + private static final Logger logger = LoggerFactory.getLogger(ProfileModuleFonctionnaliteController.class); + + + + @PostMapping("/create") + //@PreAuthorize("hasAuthority('CREATE_PROFILEMODULEFONCTIONNALITE')") + public ResponseEntity createProfileModuleFonctionnalite(@RequestBody @Valid @Validated ProfileModuleFonctionnalitePayloadWeb modulePayLoadWeb) { + try { + modulePayLoadWeb = profileModuleFonctionnaliteService.createProfileModuleFonctionnalite(modulePayLoadWeb); + return new ResponseEntity<>( + new ApiResponse<>(true, modulePayLoadWeb, "ProfileModuleFonctionnalite créé avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @PutMapping("/update/{id}") + //@PreAuthorize("hasAuthority('UPDATE_PROFILEMODULEFONCTIONNALITE')") + public ResponseEntity updateProfileModuleFonctionnalite(@PathVariable Long id, @RequestBody ProfileModuleFonctionnalitePayloadWeb modulePayLoadWeb) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, profileModuleFonctionnaliteService.updateProfileModuleFonctionnalite(id,modulePayLoadWeb), "ProfileModuleFonctionnalite mise à jour avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @DeleteMapping("/delete/{id}") + // @PreAuthorize("hasAuthority('DELETE_PROFILEMODULEFONCTIONNALITE')") + public ResponseEntity deleteProfileModuleFonctionnalite(@PathVariable Long id) { + try { + profileModuleFonctionnaliteService.deleteProfileModuleFonctionnalite(id); + return new ResponseEntity<>( + new ApiResponse<>(true, "ProfileModuleFonctionnalite supprimée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @GetMapping("/all") + //@PreAuthorize("hasAuthority('READ_PROFILEMODULEFONCTIONNALITE')") + public ResponseEntity getAllProfileModuleFonctionnaliteList() { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, profileModuleFonctionnaliteService.getProfileModuleFonctionnaliteListToDto(), "Liste des caractéristiques chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + @GetMapping("/all/by-profil-id/{profilId}") + // @PreAuthorize("hasAuthority('READ_PROFILEMODULEFONCTIONNALITE')") + public ResponseEntity getAllProfileModuleFonctionnaliteByProfilList(@PathVariable Long profilId) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, profileModuleFonctionnaliteService.getAllProfileModuleFonctionnaliteByProfilIdToDto(profilId), "Liste des modules chargée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } + + + + @GetMapping("/id/{id}") + //@PreAuthorize("hasAuthority('READ_PROFILEMODULEFONCTIONNALITE')") + public ResponseEntity getProfileModuleFonctionnaliteById(@PathVariable Long id) { + try { + return new ResponseEntity<>( + new ApiResponse<>(true, profileModuleFonctionnaliteService.getProfileModuleFonctionnaliteByIdToDto(id), "ProfileModuleFonctionnalite trouvée avec succès."), + HttpStatus.OK + ); + } catch (HttpClientErrorException.MethodNotAllowed e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Method POST/GET is required."), HttpStatus.OK); + } catch (NotFoundException | BadRequestException | MyFileNotFoundException | ResourceNotFoundException | + FileStorageException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, e.getMessage()), HttpStatus.OK); + } catch (NullPointerException e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "Null value has been detected {" + e.getMessage() + "}."), HttpStatus.OK); + } catch (Exception e) { + logger.error(e.getLocalizedMessage()); + return new ResponseEntity<>(new ApiResponse(false, null, "An error has been occur and the content is {" + e.getMessage() + "}."), HttpStatus.OK); + } + } +} diff --git a/src/main/java/io/gmss/fiscad/entities/frontend/Fonctionnalite.java b/src/main/java/io/gmss/fiscad/entities/frontend/Fonctionnalite.java new file mode 100644 index 0000000..06bc683 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/entities/frontend/Fonctionnalite.java @@ -0,0 +1,28 @@ +package io.gmss.fiscad.entities.frontend; + +import io.gmss.fiscad.entities.BaseEntity; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +@EqualsAndHashCode(callSuper = true) +@Entity +@Data +@NoArgsConstructor +@AllArgsConstructor +public class Fonctionnalite extends BaseEntity implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String code; + private String nom; + private String lien; + @Column(nullable = false, columnDefinition = "BOOLEAN DEFAULT true") + private Boolean actif; + @ManyToOne + private ModuleApp moduleApp; +} diff --git a/src/main/java/io/gmss/fiscad/entities/frontend/ModuleApp.java b/src/main/java/io/gmss/fiscad/entities/frontend/ModuleApp.java new file mode 100644 index 0000000..888608a --- /dev/null +++ b/src/main/java/io/gmss/fiscad/entities/frontend/ModuleApp.java @@ -0,0 +1,31 @@ +package io.gmss.fiscad.entities.frontend; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.gmss.fiscad.entities.BaseEntity; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.NoArgsConstructor; + +import java.io.Serializable; +import java.util.List; + +@EqualsAndHashCode(callSuper = true) +@Entity +@Data +@NoArgsConstructor +@AllArgsConstructor +public class ModuleApp extends BaseEntity implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + private String code; + private String nom; + private String lien; + @Column(nullable = false, columnDefinition = "BOOLEAN DEFAULT true") + private Boolean actif; + @JsonIgnore + @OneToMany(mappedBy = "moduleApp") + private List fonctionnalites; +} diff --git a/src/main/java/io/gmss/fiscad/entities/user/ProfileModuleFonctionnalite.java b/src/main/java/io/gmss/fiscad/entities/user/ProfileModuleFonctionnalite.java new file mode 100755 index 0000000..4419bb5 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/entities/user/ProfileModuleFonctionnalite.java @@ -0,0 +1,29 @@ +package io.gmss.fiscad.entities.user; + +import io.gmss.fiscad.entities.BaseEntity; +import io.gmss.fiscad.entities.frontend.Fonctionnalite; +import io.gmss.fiscad.entities.frontend.ModuleApp; +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.io.Serializable; + +//@EqualsAndHashCode(callSuper = true) +@Data +@AllArgsConstructor +@NoArgsConstructor +@Entity +public class ProfileModuleFonctionnalite extends BaseEntity implements Serializable { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + @ManyToOne + private Profile profile; + @ManyToOne + private ModuleApp moduleApp; + @ManyToOne + private Fonctionnalite fonctionnalite ; + private Boolean actif; +} diff --git a/src/main/java/io/gmss/fiscad/implementations/frontend/FonctionnaliteServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/frontend/FonctionnaliteServiceImpl.java new file mode 100644 index 0000000..9f604f3 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/implementations/frontend/FonctionnaliteServiceImpl.java @@ -0,0 +1,74 @@ +package io.gmss.fiscad.implementations.frontend; + +import io.gmss.fiscad.entities.frontend.Fonctionnalite; +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.interfaces.frontend.FonctionnaliteService; +import io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb; +import io.gmss.fiscad.persistence.repositories.frontend.FonctionnaliteRepository; +import io.gmss.fiscad.service.EntityFromPayLoadService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +@AllArgsConstructor +@Service +public class FonctionnaliteServiceImpl implements FonctionnaliteService { + private final FonctionnaliteRepository fonctionnaliteRepository; + private final EntityFromPayLoadService entityFromPayLoadService; + @Override + public FonctionnalitePayloadWeb createFonctionnalite(FonctionnalitePayloadWeb fonctionnalitePayloadWeb) throws BadRequestException { + if (fonctionnalitePayloadWeb.getId() != null) { + throw new BadRequestException("Impossible de créer une nouvelle déclaration NC ayant un id non null."); + } + + Fonctionnalite fonctionnalite= entityFromPayLoadService.getFonctionnaliteFromPayloadWeb(fonctionnalitePayloadWeb); + fonctionnalite = fonctionnaliteRepository.save(fonctionnalite); + return fonctionnaliteRepository.findPayloadById(fonctionnalite.getId()).orElse(null); + } + + @Override + public FonctionnalitePayloadWeb updateFonctionnalite(Long id, FonctionnalitePayloadWeb fonctionnalitePayloadWeb) throws NotFoundException { + if (fonctionnalitePayloadWeb.getId() == null) { + throw new BadRequestException("La fonctionnaliteApp n'existe pas."); + } + + if (!fonctionnaliteRepository.existsById(fonctionnalitePayloadWeb.getId())) { + throw new NotFoundException("La fonctionnaliteApp n'existe pas"); + } + + Fonctionnalite fonctionnaliteApp = entityFromPayLoadService.getFonctionnaliteFromPayloadWeb(fonctionnalitePayloadWeb); + fonctionnaliteApp =fonctionnaliteRepository.save(fonctionnaliteApp); + return fonctionnaliteRepository.findPayloadById(fonctionnaliteApp.getId()).orElse(null); + } + + @Override + public void deleteFonctionnalite(Long id) throws NotFoundException { + Optional fonctionnaliteOptional = fonctionnaliteRepository.findById(id); + if (fonctionnaliteOptional.isPresent()) { + fonctionnaliteRepository.deleteById(fonctionnaliteOptional.get().getId()); + } else { + throw new NotFoundException("Impossible de trouver la fonctionnalite à supprimer ."); + } + } + + + + @Override + public List getFonctionnaliteListToDto() { + return fonctionnaliteRepository.findAllPayload(); + } + + @Override + public Optional getFonctionnaliteByIdToDto(Long id) { + return fonctionnaliteRepository.findPayloadById(id); + } + + @Override + public List getAllFonctionnaliteByProfilIdToDto(Long id) { + return fonctionnaliteRepository.findByProfileId(id); + } + +} diff --git a/src/main/java/io/gmss/fiscad/implementations/frontend/ModuleServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/frontend/ModuleServiceImpl.java new file mode 100644 index 0000000..70e7c54 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/implementations/frontend/ModuleServiceImpl.java @@ -0,0 +1,75 @@ +package io.gmss.fiscad.implementations.frontend; + +import io.gmss.fiscad.entities.frontend.ModuleApp; +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.interfaces.frontend.ModuleService; +import io.gmss.fiscad.paylaods.request.crudweb.ModulePayloadWeb; +import io.gmss.fiscad.persistence.repositories.frontend.ModuleRepository; +import io.gmss.fiscad.service.EntityFromPayLoadService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +@AllArgsConstructor +@Service +public class ModuleServiceImpl implements ModuleService { + private final ModuleRepository moduleRepository; + private final EntityFromPayLoadService entityFromPayLoadService; + @Override + public ModulePayloadWeb createModule(ModulePayloadWeb modulePayloadWeb) throws BadRequestException { + if (modulePayloadWeb.getId() != null) { + throw new BadRequestException("Impossible de créer une nouvelle déclaration NC ayant un id non null."); + } + + ModuleApp module= entityFromPayLoadService.getModuleFromPayloadWeb(modulePayloadWeb); + module = moduleRepository.save(module); + return moduleRepository.findPayloadById(module.getId()).orElse(null); + } + + @Override + public ModulePayloadWeb updateModule(Long id, ModulePayloadWeb modulePayloadWeb) throws NotFoundException { + if (modulePayloadWeb.getId() == null) { + throw new BadRequestException("La moduleApp n'existe pas."); + } + + if (!moduleRepository.existsById(modulePayloadWeb.getId())) { + throw new NotFoundException("La moduleApp n'existe pas"); + } + + ModuleApp moduleApp = entityFromPayLoadService.getModuleFromPayloadWeb(modulePayloadWeb); + moduleApp =moduleRepository.save(moduleApp); + return moduleRepository.findPayloadById(moduleApp.getId()).orElse(null); + } + + @Override + public void deleteModule(Long id) throws NotFoundException { + Optional moduleOptional = moduleRepository.findById(id); + if (moduleOptional.isPresent()) { + moduleRepository.deleteById(moduleOptional.get().getId()); + } else { + throw new NotFoundException("Impossible de trouver la module à supprimer ."); + } + } + + + + @Override + public List getModuleListToDto() { + return moduleRepository.findAllPayload(); + } + + @Override + public Optional getModuleByIdToDto(Long id) { + return moduleRepository.findPayloadById(id); + } + + @Override + public List getAllModuleByProfilIdToDto(Long id) { + return moduleRepository.findPayloadByProfilId(id); + } + + +} diff --git a/src/main/java/io/gmss/fiscad/implementations/user/ProfileModuleFonctionnaliteServiceImpl.java b/src/main/java/io/gmss/fiscad/implementations/user/ProfileModuleFonctionnaliteServiceImpl.java new file mode 100644 index 0000000..db600b9 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/implementations/user/ProfileModuleFonctionnaliteServiceImpl.java @@ -0,0 +1,77 @@ +package io.gmss.fiscad.implementations.user; + +import io.gmss.fiscad.entities.frontend.Fonctionnalite; +import io.gmss.fiscad.entities.user.ProfileModuleFonctionnalite; +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.interfaces.frontend.FonctionnaliteService; +import io.gmss.fiscad.interfaces.user.ProfileModuleFonctionnaliteService; +import io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb; +import io.gmss.fiscad.persistence.repositories.frontend.FonctionnaliteRepository; +import io.gmss.fiscad.persistence.repositories.user.ProfileModuleFonctionnaliteRepository; +import io.gmss.fiscad.service.EntityFromPayLoadService; +import lombok.AllArgsConstructor; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Optional; + +@AllArgsConstructor +@Service +public class ProfileModuleFonctionnaliteServiceImpl implements ProfileModuleFonctionnaliteService { + private final ProfileModuleFonctionnaliteRepository profileModuleFonctionnaliteRepository; + private final EntityFromPayLoadService entityFromPayLoadService; + @Override + public ProfileModuleFonctionnalitePayloadWeb createProfileModuleFonctionnalite(ProfileModuleFonctionnalitePayloadWeb profileModuleFonctionnalitePayloadWeb) throws BadRequestException { + if (profileModuleFonctionnalitePayloadWeb.getId() != null) { + throw new BadRequestException("Impossible de créer une nouvelle déclaration NC ayant un id non null."); + } + + ProfileModuleFonctionnalite profileModuleFonctionnalite= entityFromPayLoadService.getProfileModuleFonctionnaliteFromPayloadWeb(profileModuleFonctionnalitePayloadWeb); + profileModuleFonctionnalite = profileModuleFonctionnaliteRepository.save(profileModuleFonctionnalite); + return profileModuleFonctionnaliteRepository.findPayloadById(profileModuleFonctionnalite.getId()).orElse(null); + } + + @Override + public ProfileModuleFonctionnalitePayloadWeb updateProfileModuleFonctionnalite(Long id, ProfileModuleFonctionnalitePayloadWeb profileModuleFonctionnalitePayloadWeb) throws NotFoundException { + if (profileModuleFonctionnalitePayloadWeb.getId() == null) { + throw new BadRequestException("La fonctionnaliteApp n'existe pas."); + } + + if (!profileModuleFonctionnaliteRepository.existsById(profileModuleFonctionnalitePayloadWeb.getId())) { + throw new NotFoundException("La fonctionnaliteApp n'existe pas"); + } + + ProfileModuleFonctionnalite profileModuleFonctionnalite = entityFromPayLoadService.getProfileModuleFonctionnaliteFromPayloadWeb(profileModuleFonctionnalitePayloadWeb); + profileModuleFonctionnalite =profileModuleFonctionnaliteRepository.save(profileModuleFonctionnalite); + return profileModuleFonctionnaliteRepository.findPayloadById(profileModuleFonctionnalite.getId()).orElse(null); + } + + @Override + public void deleteProfileModuleFonctionnalite(Long id) throws NotFoundException { + Optional profileModuleFonctionnaliteOptional = profileModuleFonctionnaliteRepository.findById(id); + if (profileModuleFonctionnaliteOptional.isPresent()) { + profileModuleFonctionnaliteRepository.deleteById(profileModuleFonctionnaliteOptional.get().getId()); + } else { + throw new NotFoundException("Impossible de trouver la fonctionnalite à supprimer ."); + } + } + + + + @Override + public List getProfileModuleFonctionnaliteListToDto() { + return profileModuleFonctionnaliteRepository.findAllPayload(); + } + + @Override + public Optional getProfileModuleFonctionnaliteByIdToDto(Long id) { + return profileModuleFonctionnaliteRepository.findPayloadById(id); + } + + @Override + public List getAllProfileModuleFonctionnaliteByProfilIdToDto(Long id) { + return profileModuleFonctionnaliteRepository.findByProfileId(id); + } + +} diff --git a/src/main/java/io/gmss/fiscad/interfaces/frontend/FonctionnaliteService.java b/src/main/java/io/gmss/fiscad/interfaces/frontend/FonctionnaliteService.java new file mode 100755 index 0000000..2cda477 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/interfaces/frontend/FonctionnaliteService.java @@ -0,0 +1,32 @@ +package io.gmss.fiscad.interfaces.frontend; + +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Optional; + +public interface FonctionnaliteService { + + FonctionnalitePayloadWeb createFonctionnalite(FonctionnalitePayloadWeb fonctionnalitePayLoadWeb) throws BadRequestException; + + FonctionnalitePayloadWeb updateFonctionnalite(Long id, FonctionnalitePayloadWeb fonctionnalitePayLoadWeb) throws NotFoundException; + + void deleteFonctionnalite(Long id) throws NotFoundException; + + //Page getFonctionnaliteListToDtoPageable(Pageable pageable); + + List getFonctionnaliteListToDto(); + + Optional getFonctionnaliteByIdToDto(Long id); + + //List getAllFonctionnaliteByEnqueteToDto(Long id); + //Page getAllFonctionnaliteByEnqueteToDtoPageable(Long id,Pageable pageable); + + //List getAllFonctionnaliteByEnqueteBatimentToDto(Long id); + + List getAllFonctionnaliteByProfilIdToDto(Long id); +} diff --git a/src/main/java/io/gmss/fiscad/interfaces/frontend/ModuleService.java b/src/main/java/io/gmss/fiscad/interfaces/frontend/ModuleService.java new file mode 100755 index 0000000..ccd158f --- /dev/null +++ b/src/main/java/io/gmss/fiscad/interfaces/frontend/ModuleService.java @@ -0,0 +1,30 @@ +package io.gmss.fiscad.interfaces.frontend; + +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.paylaods.request.crudweb.ModulePayloadWeb; +import io.gmss.fiscad.paylaods.request.crudweb.ModulePayloadWeb; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Optional; + +public interface ModuleService { + + ModulePayloadWeb createModule(ModulePayloadWeb modulePayLoadWeb) throws BadRequestException; + + ModulePayloadWeb updateModule(Long id, ModulePayloadWeb modulePayLoadWeb) throws NotFoundException; + + void deleteModule(Long id) throws NotFoundException; + + //Page getModuleListToDtoPageable(Pageable pageable); + + List getModuleListToDto(); + + Optional getModuleByIdToDto(Long id); + + + List getAllModuleByProfilIdToDto(Long id); + +} diff --git a/src/main/java/io/gmss/fiscad/interfaces/user/ProfileModuleFonctionnaliteService.java b/src/main/java/io/gmss/fiscad/interfaces/user/ProfileModuleFonctionnaliteService.java new file mode 100755 index 0000000..5b94c19 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/interfaces/user/ProfileModuleFonctionnaliteService.java @@ -0,0 +1,32 @@ +package io.gmss.fiscad.interfaces.user; + +import io.gmss.fiscad.exceptions.BadRequestException; +import io.gmss.fiscad.exceptions.NotFoundException; +import io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; + +import java.util.List; +import java.util.Optional; + +public interface ProfileModuleFonctionnaliteService { + + ProfileModuleFonctionnalitePayloadWeb createProfileModuleFonctionnalite(ProfileModuleFonctionnalitePayloadWeb profileModuleFonctionnalitePayloadWeb) throws BadRequestException; + + ProfileModuleFonctionnalitePayloadWeb updateProfileModuleFonctionnalite(Long id, ProfileModuleFonctionnalitePayloadWeb profileModuleFonctionnalitePayloadWeb) throws NotFoundException; + + void deleteProfileModuleFonctionnalite(Long id) throws NotFoundException; + + //Page getProfileModuleFonctionnaliteListToDtoPageable(Pageable pageable); + + List getProfileModuleFonctionnaliteListToDto(); + + Optional getProfileModuleFonctionnaliteByIdToDto(Long id); + + //List getAllProfileModuleFonctionnaliteByEnqueteToDto(Long id); + //Page getAllProfileModuleFonctionnaliteByEnqueteToDtoPageable(Long id,Pageable pageable); + + //List getAllProfileModuleFonctionnaliteByEnqueteBatimentToDto(Long id); + + List getAllProfileModuleFonctionnaliteByProfilIdToDto(Long id); +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/FonctionnalitePayloadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/FonctionnalitePayloadWeb.java new file mode 100644 index 0000000..4eb93e5 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/FonctionnalitePayloadWeb.java @@ -0,0 +1,28 @@ +package io.gmss.fiscad.paylaods.request.crudweb; + +import lombok.Data; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@Data +public class FonctionnalitePayloadWeb { + private Long id; + private String code; + private String nom; + private Long moduleId; + private String moduleCode; + private String moduleNom; + private Boolean actif; + private String lien; + + public FonctionnalitePayloadWeb(Long id, String code, String nom, Long moduleId, String moduleCode, String moduleNom, Boolean actif, String lien) { + this.id = id; + this.code = code; + this.nom = nom; + this.moduleId = moduleId; + this.moduleCode = moduleCode; + this.moduleNom = moduleNom; + this.actif = actif; + this.lien = lien; + } +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ModulePayloadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ModulePayloadWeb.java new file mode 100644 index 0000000..2347981 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ModulePayloadWeb.java @@ -0,0 +1,22 @@ +package io.gmss.fiscad.paylaods.request.crudweb; + +import lombok.Data; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@Data +public class ModulePayloadWeb { + private Long id; + private String code; + private String nom; + private Boolean actif; + private String lien; + + public ModulePayloadWeb(Long id, String code, String nom, Boolean actif, String lien) { + this.id = id; + this.code = code; + this.nom = nom; + this.actif = actif; + this.lien = lien; + } +} diff --git a/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ProfileModuleFonctionnalitePayloadWeb.java b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ProfileModuleFonctionnalitePayloadWeb.java new file mode 100644 index 0000000..0be8319 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/paylaods/request/crudweb/ProfileModuleFonctionnalitePayloadWeb.java @@ -0,0 +1,39 @@ +package io.gmss.fiscad.paylaods.request.crudweb; + +import io.gmss.fiscad.enums.ProfileApp; +import io.gmss.fiscad.enums.UserProfile; +import jakarta.persistence.EnumType; +import jakarta.persistence.Enumerated; +import lombok.Data; +import lombok.NoArgsConstructor; + +@NoArgsConstructor +@Data +public class ProfileModuleFonctionnalitePayloadWeb { + private Long id; + private Long profileId; + @Enumerated(EnumType.STRING) + private UserProfile profileNom; + private String profileDescription; + private Long moduleId; + private String moduleCode; + private String moduleNom; + private Long fonctionnaliteId; + private String fonctionnaliteCode; + private String fonctionnaliteNom; + private Boolean actif; + + public ProfileModuleFonctionnalitePayloadWeb(Long id, Long profileId, UserProfile profileNom, String profileDescription, Long moduleId, String moduleCode, String moduleNom, Long fonctionnaliteId, String fonctionnaliteCode, String fonctionnaliteNom, Boolean actif) { + this.id = id; + this.profileId = profileId; + this.profileNom = profileNom; + this.profileDescription = profileDescription; + this.moduleId = moduleId; + this.moduleCode = moduleCode; + this.moduleNom = moduleNom; + this.fonctionnaliteId = fonctionnaliteId; + this.fonctionnaliteCode = fonctionnaliteCode; + this.fonctionnaliteNom = fonctionnaliteNom; + this.actif = actif; + } +} diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/frontend/FonctionnaliteRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/frontend/FonctionnaliteRepository.java new file mode 100755 index 0000000..4af1e44 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/frontend/FonctionnaliteRepository.java @@ -0,0 +1,128 @@ +package io.gmss.fiscad.persistence.repositories.frontend; + +import io.gmss.fiscad.entities.frontend.Fonctionnalite; +import io.gmss.fiscad.entities.infocad.metier.Piece; +import io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb; +import io.gmss.fiscad.paylaods.request.crudweb.PiecePayLoadWeb; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.time.LocalDate; +import java.util.List; +import java.util.Optional; + +public interface FonctionnaliteRepository extends JpaRepository { + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb( + f.id, + f.code, + f.nom, + m.id, + m.code, + m.nom, + f.actif, + f.lien + ) + from Fonctionnalite f + join f.moduleApp m + where f.id = :id + """) + Optional findPayloadById(@Param("id") Long id); + + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb( + f.id, + f.code, + f.nom, + m.id, + m.code, + m.nom, + f.actif, + f.lien + ) + from Fonctionnalite f + join f.moduleApp m + """) + List findAllPayload(); + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb( + f.id, + f.code, + f.nom, + m.id, + m.code, + m.nom, + f.actif, + f.lien + ) + from Fonctionnalite f + join f.moduleApp m + where m.id = :moduleId + """) + List findByModuleId( + @Param("moduleId") Long moduleId); + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb( + f.id, + f.code, + f.nom, + m.id, + m.code, + m.nom, + f.actif, + f.lien + ) + from Fonctionnalite f + join f.moduleApp m + where m.id = :moduleId + and f.actif = :actif + """) + List findByModuleIdAndActif( + @Param("moduleId") Long moduleId, + @Param("actif") Boolean actif); + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb( + f.id, + f.code, + f.nom, + m.id, + m.code, + m.nom, + f.actif, + f.lien + ) + from Fonctionnalite f + join f.moduleApp m + where f.code = :code + """) + Optional findByCode( + @Param("code") String code); + + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.FonctionnalitePayloadWeb( + f.id, + f.code, + f.nom, + pmf.moduleApp.id, + pmf.moduleApp.code, + pmf.moduleApp.nom, + f.actif, + f.lien + ) + from Fonctionnalite f + join ProfileModuleFonctionnalite pmf on pmf.fonctionnalite=f + where pmf.profile.id = :profilId + """) + List findByProfileId( + @Param("profilId") Long moduleId + ); +} + diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/frontend/ModuleRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/frontend/ModuleRepository.java new file mode 100755 index 0000000..441c832 --- /dev/null +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/frontend/ModuleRepository.java @@ -0,0 +1,73 @@ +package io.gmss.fiscad.persistence.repositories.frontend; + +import io.gmss.fiscad.entities.frontend.ModuleApp; +import io.gmss.fiscad.entities.infocad.metier.Piece; +import io.gmss.fiscad.paylaods.request.crudweb.ModulePayloadWeb; +import io.gmss.fiscad.paylaods.request.crudweb.PiecePayLoadWeb; +import io.gmss.fiscad.paylaods.response.restoration.PiecePayLoadRestor; +import jakarta.transaction.Transactional; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.time.LocalDate; +import java.util.List; +import java.util.Optional; + +public interface ModuleRepository extends JpaRepository { + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.ModulePayloadWeb( + m.id, + m.code, + m.nom, + m.actif, + m.lien + ) + from ModuleApp m + where m.id = :id + """) + Optional findPayloadById(@Param("id") Long id); + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.ModulePayloadWeb( + m.id, + m.code, + m.nom, + m.actif, + m.lien + ) + from ModuleApp m + """) + List findAllPayload(); + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.ModulePayloadWeb( + m.id, + m.code, + m.nom, + m.actif, + m.lien + ) + from ModuleApp m + where m.actif = :actif + """) + List findByActif(@Param("actif") Boolean actif); + + + @Query(""" + select distinct new io.gmss.fiscad.paylaods.request.crudweb.ModulePayloadWeb( + m.id, + m.code, + m.nom, + m.actif, + m.lien + ) + from ModuleApp m + join ProfileModuleFonctionnalite pf on pf.moduleApp=m + where pf.profile.id = :Profilid + """) + List findPayloadByProfilId(@Param("Profilid") Long id); +} + diff --git a/src/main/java/io/gmss/fiscad/persistence/repositories/user/ProfileModuleFonctionnaliteRepository.java b/src/main/java/io/gmss/fiscad/persistence/repositories/user/ProfileModuleFonctionnaliteRepository.java new file mode 100755 index 0000000..da0df7b --- /dev/null +++ b/src/main/java/io/gmss/fiscad/persistence/repositories/user/ProfileModuleFonctionnaliteRepository.java @@ -0,0 +1,161 @@ +package io.gmss.fiscad.persistence.repositories.user; + +import io.gmss.fiscad.entities.infocad.metier.Piece; +import io.gmss.fiscad.entities.user.ProfileModuleFonctionnalite; +import io.gmss.fiscad.paylaods.request.crudweb.PiecePayLoadWeb; +import io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb; +import org.springframework.data.domain.Page; +import org.springframework.data.domain.Pageable; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import java.time.LocalDate; +import java.util.List; +import java.util.Optional; + +public interface ProfileModuleFonctionnaliteRepository extends JpaRepository { + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb( + pmf.id, + p.id, + p.nom, + p.description, + m.id, + m.code, + m.nom, + f.id, + f.code, + f.nom, + pmf.actif + ) + from ProfileModuleFonctionnalite pmf + join pmf.profile p + join pmf.moduleApp m + join pmf.fonctionnalite f + where pmf.id = :id + """) + Optional findPayloadById( + @Param("id") Long id); + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb( + pmf.id, + p.id, + p.nom, + p.description, + m.id, + m.code, + m.nom, + f.id, + f.code, + f.nom, + pmf.actif + ) + from ProfileModuleFonctionnalite pmf + join pmf.profile p + join pmf.moduleApp m + join pmf.fonctionnalite f + order by p.nom, m.nom, f.nom + """) + List findAllPayload(); + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb( + pmf.id, + p.id, + p.nom, + p.description, + m.id, + m.code, + m.nom, + f.id, + f.code, + f.nom, + pmf.actif + ) + from ProfileModuleFonctionnalite pmf + join pmf.profile p + join pmf.moduleApp m + join pmf.fonctionnalite f + """) + Page findAllPayload( + Pageable pageable); + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb( + pmf.id, + p.id, + p.nom, + p.description, + m.id, + m.code, + m.nom, + f.id, + f.code, + f.nom, + pmf.actif + ) + from ProfileModuleFonctionnalite pmf + join pmf.profile p + join pmf.moduleApp m + join pmf.fonctionnalite f + where p.id = :profileId + order by m.nom, f.nom + """) + List findByProfileId( + @Param("profileId") Long profileId); + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb( + pmf.id, + p.id, + p.nom, + p.description, + m.id, + m.code, + m.nom, + f.id, + f.code, + f.nom, + pmf.actif + ) + from ProfileModuleFonctionnalite pmf + join pmf.profile p + join pmf.moduleApp m + join pmf.fonctionnalite f + where m.id = :moduleId + order by p.nom, f.nom + """) + List findByModuleId( + @Param("moduleId") Long moduleId); + + + @Query(""" + select new io.gmss.fiscad.paylaods.request.crudweb.ProfileModuleFonctionnalitePayloadWeb( + pmf.id, + p.id, + p.nom, + p.description, + m.id, + m.code, + m.nom, + f.id, + f.code, + f.nom, + pmf.actif + ) + from ProfileModuleFonctionnalite pmf + join pmf.profile p + join pmf.moduleApp m + join pmf.fonctionnalite f + where p.id = :profileId + and pmf.actif = :actif + order by m.nom, f.nom + """) + List findByProfileIdAndActif( + @Param("profileId") Long profileId, + @Param("actif") Boolean actif); + +} + diff --git a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java index be8ffc6..3393a3a 100644 --- a/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java +++ b/src/main/java/io/gmss/fiscad/service/EntityFromPayLoadService.java @@ -2,19 +2,20 @@ package io.gmss.fiscad.service; import io.gmss.fiscad.controllers.rfu.metier.ImpositionsTfuController; import io.gmss.fiscad.entities.decoupage.*; +import io.gmss.fiscad.entities.frontend.Fonctionnalite; +import io.gmss.fiscad.entities.frontend.ModuleApp; import io.gmss.fiscad.entities.infocad.metier.*; import io.gmss.fiscad.entities.infocad.parametre.*; import io.gmss.fiscad.entities.rfu.metier.*; import io.gmss.fiscad.entities.rfu.parametre.*; -import io.gmss.fiscad.entities.user.AvoirFonction; -import io.gmss.fiscad.entities.user.Fonction; -import io.gmss.fiscad.entities.user.Profile; -import io.gmss.fiscad.entities.user.User; +import io.gmss.fiscad.entities.user.*; import io.gmss.fiscad.enums.StatutEnquete; import io.gmss.fiscad.exceptions.BadRequestException; import io.gmss.fiscad.exceptions.NotFoundException; import io.gmss.fiscad.paylaods.request.crudweb.*; import io.gmss.fiscad.persistence.repositories.decoupage.*; +import io.gmss.fiscad.persistence.repositories.frontend.FonctionnaliteRepository; +import io.gmss.fiscad.persistence.repositories.frontend.ModuleRepository; import io.gmss.fiscad.persistence.repositories.infocad.metier.*; import io.gmss.fiscad.persistence.repositories.infocad.parametre.*; import io.gmss.fiscad.persistence.repositories.rfu.metier.*; @@ -23,6 +24,7 @@ import io.gmss.fiscad.persistence.repositories.rfu.parametre.BaremRfuRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.CaracteristiqueRepository; import io.gmss.fiscad.persistence.repositories.rfu.parametre.ExerciceRepository; import io.gmss.fiscad.persistence.repositories.user.AvoirFonctionRepository; +import io.gmss.fiscad.persistence.repositories.user.ProfileModuleFonctionnaliteRepository; import io.gmss.fiscad.persistence.repositories.user.ProfileRepository; import io.gmss.fiscad.persistence.repositories.user.UserRepository; import lombok.AllArgsConstructor; @@ -75,6 +77,9 @@ public class EntityFromPayLoadService { private final NatureDomaineRepository natureDomaineRepository ; private final TypeDomaineRepository typeDomaineRepository ; private final CommuneCentreAssignationRepository communeCentreAssignationRepository ; + private final ModuleRepository moduleRepository ; + private final FonctionnaliteRepository fonctionnaliteRepository ; + private final ProfileModuleFonctionnaliteRepository profileModuleFonctionnaliteRepository ; public CaracteristiqueParcelle getCaracteristiqueParcelleFromPayLoadWeb(CaracteristiqueParcellePayloadWeb caracteristiqueParcellePayloadWeb){ @@ -1037,4 +1042,59 @@ public class EntityFromPayLoadService { return communeCentreAssignation; } + + public ModuleApp getModuleFromPayloadWeb(ModulePayloadWeb modulePayloadWeb) { + ModuleApp moduleApp =new ModuleApp(); + if(modulePayloadWeb.getId()!=null) + moduleApp = moduleRepository.findById(modulePayloadWeb.getId()).orElse(new ModuleApp()); + moduleApp.setId(modulePayloadWeb.getId()); + moduleApp.setCode(modulePayloadWeb.getCode()); + moduleApp.setNom(modulePayloadWeb.getNom()); + moduleApp.setActif(true); + return moduleApp ; + } + + public Fonctionnalite getFonctionnaliteFromPayloadWeb(FonctionnalitePayloadWeb fonctionnalitePayloadWeb) { + Fonctionnalite fonctionnalite =new Fonctionnalite(); + if(fonctionnalitePayloadWeb.getId()!=null) + fonctionnalite = fonctionnaliteRepository.findById(fonctionnalitePayloadWeb.getId()).orElse(new Fonctionnalite()); + + if (fonctionnalitePayloadWeb.getModuleId() != null) { + ModuleApp moduleApp = new ModuleApp(); + moduleApp.setId(fonctionnalitePayloadWeb.getModuleId()); + fonctionnalite.setModuleApp(moduleApp); + } + + fonctionnalite.setId(fonctionnalitePayloadWeb.getId()); + fonctionnalite.setCode(fonctionnalitePayloadWeb.getCode()); + fonctionnalite.setNom(fonctionnalitePayloadWeb.getNom()); + fonctionnalite.setActif(true); + return fonctionnalite ; + } + + public ProfileModuleFonctionnalite getProfileModuleFonctionnaliteFromPayloadWeb(ProfileModuleFonctionnalitePayloadWeb profileModuleFonctionnalitePayloadWeb) { + ProfileModuleFonctionnalite profileModuleFonctionnalite =new ProfileModuleFonctionnalite(); + if(profileModuleFonctionnalitePayloadWeb.getId()!=null) + profileModuleFonctionnalite = profileModuleFonctionnaliteRepository.findById(profileModuleFonctionnalitePayloadWeb.getId()).orElse(new ProfileModuleFonctionnalite()); + + if (profileModuleFonctionnalitePayloadWeb.getModuleId() != null) { + ModuleApp moduleApp = new ModuleApp(); + moduleApp.setId(profileModuleFonctionnalitePayloadWeb.getModuleId()); + profileModuleFonctionnalite.setModuleApp(moduleApp); + } + + if (profileModuleFonctionnalitePayloadWeb.getProfileId() != null) { + Profile profile = new Profile(); + profile.setId(profileModuleFonctionnalitePayloadWeb.getProfileId()); + profileModuleFonctionnalite.setProfile(profile); + } + + if (profileModuleFonctionnalitePayloadWeb.getFonctionnaliteId() != null) { + Fonctionnalite fonctionnalite = new Fonctionnalite(); + fonctionnalite.setId(profileModuleFonctionnalitePayloadWeb.getFonctionnaliteId()); + profileModuleFonctionnalite.setFonctionnalite(fonctionnalite); + } + profileModuleFonctionnalite.setActif(true); + return profileModuleFonctionnalite ; + } } diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 1a0a2d9..f3ffe74 100755 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,6 +1,6 @@ -spring.profiles.active=${SPRING_PROFILES_ACTIVE} +#spring.profiles.active=${SPRING_PROFILES_ACTIVE} #spring.profiles.active=abomey -#spring.profiles.active=test +spring.profiles.active=test spring.jpa.properties.hibernate.id.new_generator_mappings=false spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true spring.jpa.open-in-view=false From 939c338b22dfc5d3b2390ba29cdcc5aa0575f5cc Mon Sep 17 00:00:00 2001 From: Aurince AKAKPO Date: Thu, 18 Jun 2026 00:46:46 +0100 Subject: [PATCH 2/2] gestion parametre frontend --- src/main/resources/application.properties | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index f3ffe74..1a0a2d9 100755 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,6 +1,6 @@ -#spring.profiles.active=${SPRING_PROFILES_ACTIVE} +spring.profiles.active=${SPRING_PROFILES_ACTIVE} #spring.profiles.active=abomey -spring.profiles.active=test +#spring.profiles.active=test spring.jpa.properties.hibernate.id.new_generator_mappings=false spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true spring.jpa.open-in-view=false