package io.gmss.fiscad.controllers.synchronisation; import io.gmss.fiscad.exceptions.*; import io.gmss.fiscad.interfaces.synchronisation.RestaurationService; import io.gmss.fiscad.paylaods.ApiResponse; import io.swagger.v3.oas.annotations.security.SecurityRequirement; import io.swagger.v3.oas.annotations.tags.Tag; 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; @RestController @RequestMapping(value = "api/restauration", produces = MediaType.APPLICATION_JSON_VALUE) @SecurityRequirement(name = "bearer") @Tag(name = "Restauration") @CrossOrigin(origins = "*") @PreAuthorize("hasRole('ROLE_ADMIN') or hasRole('ROLE_SUPERVISEUR') or hasRole('ROLE_ENQUETEUR')") public class RestaurationController { public final RestaurationService restaurationService; private static final Logger logger = LoggerFactory.getLogger(RestaurationController.class); public RestaurationController(RestaurationService restaurationService) { this.restaurationService = restaurationService; } @GetMapping(path = "/enquete/{terminalId}") public ResponseEntity getEnquetes(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getEnquete(terminalId), "liste des enquetes 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(path = "/acteur-concerne/{terminalId}") public ResponseEntity getActeurConcerne(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getActeurConcernes(terminalId), "liste des acteurs concerné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(path = "/personne/{terminalId}") // ok public ResponseEntity getPersonnes(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getPersonne(terminalId), "liste des personnes 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(path = "/membre-groupe/{terminalId}") public ResponseEntity getMembrePersonnes(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getMembreGroupe(terminalId), "liste des membres groupe 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(path = "/parcelle/{terminalId}") public ResponseEntity getParcelle(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getParcelle(terminalId), "liste des parcelle 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(path = "/piece/{terminalId}") public ResponseEntity getPieces(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getPieces(terminalId), "liste des enquetes 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(path = "/upload/{terminalId}") public ResponseEntity getUpload(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getUpload(terminalId), "liste des enquetes 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(path = "/current-user-tpes") public ResponseEntity getCurrentUserTpe() { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getTpeListByCurrentUser(), "liste des enquetes 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(path = "/batiment/{terminalId}") public ResponseEntity getBatiments(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getBatiment(terminalId), "liste des batiments 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(path = "/enquete-batiment/{terminalId}") public ResponseEntity getEnqueteBatiment(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getEnqueteBatiment(terminalId), "liste des enquetes batiments 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(path = "/caracteristique-batiment/{terminalId}") public ResponseEntity getCaracteristiqueBatiment(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getCaracateristiqueBatiment(terminalId), "liste des caractéristiques batiments 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(path = "/caracteristique-unite-logement/{terminalId}") public ResponseEntity getCaracteristiqueUniteLogement(@PathVariable Long terminalId) { try { return new ResponseEntity<>( new ApiResponse<>(true, restaurationService.getCaracateristiqueUniteLogement(terminalId), "liste des caractéristiques des unités de logement 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); } } }