package io.gmss.fiscad.controllers.synchronisation; import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.interfaces.infocad.metier.EnqueteService; import io.gmss.fiscad.interfaces.synchronisation.SynchronisationService; import io.gmss.fiscad.paylaods.ApiResponse; import io.gmss.fiscad.paylaods.request.EnqueteAllDataPayload; import io.gmss.fiscad.paylaods.request.synchronisation.*; import io.gmss.fiscad.service.ZipService; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.transaction.Transactional; 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.web.bind.annotation.*; import org.springframework.web.client.HttpClientErrorException; import org.springframework.web.multipart.MultipartFile; import java.util.List; @RestController @RequestMapping(value = "api/synchronisation", produces = MediaType.APPLICATION_JSON_VALUE) @SecurityRequirement(name = "bearer") @Tag(name = "Synchronisation") @CrossOrigin(origins = "*") @AllArgsConstructor public class SynchronisationController { private final SynchronisationService synchronisationService; private final EnqueteService enqueteService; private final ZipService zipService; private static final Logger logger = LoggerFactory.getLogger(SynchronisationController.class); @GetMapping("/user-decoupage-territorial") public ResponseEntity getUserDecoupageTerritorial() { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.getDecoupageAdminUserConnecter(), "Liste des découpages territoriaux chargés 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("/references") public ResponseEntity getAllReferences() { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.getReferencesSyncResponses(), "Liste des données de référence 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); } } @Transactional @PostMapping("/personnes") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncPersonne(@RequestBody List personnePayLoads) { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.syncPersonnes(personnePayLoads), "Liste des personnes synchronisé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); } } @PostMapping("/membre-groupe") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncMembreGroupe(@RequestBody List membreGroupePayLoads) { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.syncMembreGroupe(membreGroupePayLoads), "Liste des membres de groupes de personnes synchronisé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); } } @PostMapping("/enquete") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncEnquete(@RequestBody List enquetePayLoads) { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.syncEnquete(enquetePayLoads), "Liste des enquêtes synchronisé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); } } @PostMapping("/parcelle") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncParcelle(@RequestBody List parcellePayLoads) { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.syncParcelle(parcellePayLoads), "Liste des parceclles synchronisé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); } } @PostMapping("/piece") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncPiece(@RequestBody List piecePayLoads) { try { return new ResponseEntity<>( //new ApiResponse<>(true, null, "Liste des pièces synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncPiece(piecePayLoads), "Liste des pièces synchronisé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); } } @PostMapping("/acteur-concerne") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncActeurConcerne(@RequestBody List piecePayLoads) { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.syncActeurConcerne(piecePayLoads), "Liste des acteurs concernes synchronisé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); } } @PostMapping("/enquete-activite") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncEnqueteActivite(@RequestBody List enqueteActivitePayloads) { try { return new ResponseEntity<>( //new ApiResponse<>(true, null, "Liste des pièces synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncEnqueteActivite(enqueteActivitePayloads), "Liste des activités synchronisé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); } } @PostMapping("/declaraction-nc") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncDeclarationNc(@RequestBody List declarationNcPayloads) { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.syncDeclarationNc(declarationNcPayloads), "Liste des activités synchronisé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); } } //@PostMapping("/files") // @PostMapping(path = "/files") // @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") // public ResponseEntity syncFiles(@RequestPart(required = true) MultipartFile file, // @RequestParam(value = "idBackend", required = false) Long idBackend, // @RequestParam(value = "externalKey", required = true) Long externalKey, // @RequestParam(value = "pieceId", required = false) Long pieceId, // @RequestParam(value = "membreGroupeId", required = false) Long membreGroupeId, // @RequestParam(value = "terminalId", required = false) Long terminalId, // @RequestParam(value = "name", required = false) String name, // @RequestParam(value = "filePath", required = false) String filePath, // @RequestParam(value = "max_numero_piece_id", required = false) Long max_numero_piece_id, // @RequestParam(value = "max_numero_upload_id", required = false) Long max_numero_upload_id, // @RequestParam(value = "max_numero_acteur_concerne_id", required = false) Long max_numero_acteur_concerne_id, // @RequestParam(value = "enqueteId", required = false) Long enqueteId, // @RequestParam(value = "enqueteBatimentId", required = false) Long enqueteBatimentId, // @RequestParam(value = "enqueteUniteLogementId", required = false) Long enqueteUniteLogementId, // @RequestParam(value = "personneId", required = false) Long personneId // ) { // try { // return new ResponseEntity<>( // //null, // new ApiResponse<>(true, synchronisationService.syncFiles(file, // idBackend, // externalKey, // pieceId, // membreGroupeId, // terminalId, // name, // filePath, // max_numero_piece_id, // max_numero_upload_id, // max_numero_acteur_concerne_id, // enqueteId, // enqueteBatimentId, // enqueteUniteLogementId, // personneId), "Liste des fichiers synchronisé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); // } // } @PostMapping(path = "/uploads") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncUploads(@RequestBody List uploadPayLoads) { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.syncUpload(uploadPayLoads), "Liste des uploads synchronisée avec succès."), HttpStatus.OK ); } // /** // * Upload d'un .zip et extraction sur le répertoire configuré. // * // * @param file Fichier ZIP (champ "file") // */ // @PostMapping(path = "/upload-zip", consumes = MediaType.MULTIPART_FORM_DATA_VALUE, produces = MediaType.APPLICATION_JSON_VALUE) // //@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") // public ResponseEntity uploadZip(@RequestPart("file") MultipartFile file) { // // try { // return new ResponseEntity<>( // new ApiResponse<>(true, zipService.uploadAndExtract(file, true), "Dossier enregistré avec succès"), // HttpStatus.OK // ); // } catch (Exception e) { // e.printStackTrace(); // return new ResponseEntity<>( // new ApiResponse<>(true, null, "Echec d'enregistrement du dossier "), // HttpStatus.OK // ); // } // } @PostMapping(path = "/synchronise/all-enquete-data") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncAllEnqueteData(@ModelAttribute EnqueteAllDataPayload enqueteAllDataPayload) { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.syncEnqueteAllData(enqueteAllDataPayload), "Les enquetes sont synchronisées 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); } } @PostMapping(path = "/synchronise/enquete/confirme-from-mobile") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncAllEnqueteData(@RequestBody List longList) { try { return new ResponseEntity<>( new ApiResponse<>(true, synchronisationService.syncEnqueteFromMobile(longList), "Synchronisation confirmé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); } } @PostMapping(path = "/batiment") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncBatiment(@RequestBody List batimentPaylaods) { try { return new ResponseEntity<>( //new ApiResponse<>(true, null, "Liste des batiments synchronisées avec succès."), new ApiResponse<>(true, synchronisationService.syncBatiment(batimentPaylaods), "Liste des batiments synchronisées 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); } } @PostMapping(path = "/unite-logement") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncUniteLogement(@RequestBody List uniteLogementPaylaods) { try { return new ResponseEntity<>( //new ApiResponse<>(true,null, "Liste des unités de logement synchronisées avec succès."), new ApiResponse<>(true, synchronisationService.syncUniteLogement(uniteLogementPaylaods), "Liste des unités de logement synchronisées 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); } } @PostMapping(path = "/caracteristique-batiment") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncCaracteristiqueBatiment(@RequestBody List CaracteristiqueBatimentPayloads) { try { return new ResponseEntity<>( //new ApiResponse<>(true, null, "Liste des caractéristiques des bâtiments synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncCaracteristiqueBatiment(CaracteristiqueBatimentPayloads), "Liste des caractéristiques des bâtiments synchronisé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); } } @PostMapping(path = "/caracteristique-parcelle") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncCaracteristiqueParcelle(@RequestBody List CaracteristiqueParcellePayloads) { try { return new ResponseEntity<>( //new ApiResponse<>(true, null, "Liste des caractéristiques des parcelles synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncCaracteristiqueParcelle(CaracteristiqueParcellePayloads), "Liste des caractéristiques des parcelles synchronisé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); } } @PostMapping(path = "/caracteristique-unite-logement") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncCaracteristiqueUniteLogement(@RequestBody List CaracteristiqueUniteLogementPayloads) { try { return new ResponseEntity<>( //new ApiResponse<>(true, null, "Liste des caractéristiques des unités de logement synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncCaracteristiqueUniteLogement(CaracteristiqueUniteLogementPayloads), "Liste des caractéristiques des unités de logement synchronisé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); } } @PostMapping("/enquete-batiment") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncEnqueteBatiment(@RequestBody List enqueteBatimentPayloads) { try { return new ResponseEntity<>( //new ApiResponse<>(true, null, "Liste des enquêtes des batiments synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncEnqueteBatiment(enqueteBatimentPayloads), "Liste des enquêtes des batiments synchronisé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); } } @PostMapping("/enquete-unite-logement") @PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity syncEnqueteUniteLogement(@RequestBody List enqueteUniteLogementPayloads) { try { return new ResponseEntity<>( //new ApiResponse<>(true, null, "Liste des enquêtes des unités de logement synchronisée avec succès."), new ApiResponse<>(true, synchronisationService.syncEnqueteUniteLogement(enqueteUniteLogementPayloads), "Liste des enquêtes des unités de logement synchronisé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("/traiter-non-synch-to-mobile/{terminalId}") //@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity getEnqueteValideNonSynch(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, enqueteService.getEnqueteValideNonSynch(terminalId), "Liste des enquetes traitées non synchronisées sur le termianl."), 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); } } @PostMapping("/traite-synchronisation/{terminalId}") //@PreAuthorize("hasRole('ADMIN') or hasRole('SUPERVISEUR') or hasRole('ENQUETEUR')") public ResponseEntity traiteSynchronisation(@PathVariable Long terminalId) { try { synchronisationService.traitementTableRelationnelle(terminalId); return new ResponseEntity<>( new ApiResponse<>(true, null, "Synchronisation lancé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); } } }