255 lines
15 KiB
Java
255 lines
15 KiB
Java
package io.gmss.fiscad.controllers.user;
|
|
|
|
|
|
import io.gmss.fiscad.entities.user.DemandeReinitialisationMP;
|
|
import io.gmss.fiscad.entities.user.User;
|
|
import io.gmss.fiscad.enums.UserRole;
|
|
import io.gmss.fiscad.exceptions.*;
|
|
import io.gmss.fiscad.interfaces.user.DemandeReinitialisationMPService;
|
|
import io.gmss.fiscad.interfaces.user.RoleService;
|
|
import io.gmss.fiscad.interfaces.user.UserService;
|
|
import io.gmss.fiscad.paylaods.ApiResponse;
|
|
import io.gmss.fiscad.paylaods.DemandeReinitialisationMPResponse;
|
|
import io.gmss.fiscad.security.CurrentUser;
|
|
import io.gmss.fiscad.security.UserPrincipal;
|
|
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.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.web.bind.annotation.*;
|
|
import org.springframework.web.client.HttpClientErrorException;
|
|
|
|
@RestController
|
|
@RequestMapping(value = "api/demande-reinitialisation-mp", produces = MediaType.APPLICATION_JSON_VALUE)
|
|
@SecurityRequirement(name = "bearer")
|
|
@Tag(name = "Demande de réinitialisation mot de passe")
|
|
@CrossOrigin(origins = "*")
|
|
public class DemandeReinitialisationMPController {
|
|
|
|
private final DemandeReinitialisationMPService demandeReinitialisationMPService;
|
|
private static final Logger logger = LoggerFactory.getLogger(DemandeReinitialisationMPController.class);
|
|
private final UserService userService;
|
|
private final RoleService roleService;
|
|
|
|
public DemandeReinitialisationMPController(DemandeReinitialisationMPService demandeReinitialisationMPService, UserService userService, RoleService roleService) {
|
|
this.demandeReinitialisationMPService = demandeReinitialisationMPService;
|
|
this.userService = userService;
|
|
this.roleService = roleService;
|
|
}
|
|
|
|
@GetMapping("/create")
|
|
@PreAuthorize("hasAuthority('CREATE_DEMANDEREINITIALISATIONMP')")
|
|
public ResponseEntity<?> createDemandeReinitialisationMP(@RequestParam String usernamrOrEmail) {
|
|
try {
|
|
demandeReinitialisationMPService.createDemandeReinitialisationMP(usernamrOrEmail);
|
|
return new ResponseEntity<>(
|
|
new ApiResponse<>(true, "Demande Reinitialisation mot de passe 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_DEMANDEREINITIALISATIONMP')")
|
|
public ResponseEntity<?> updateDemandeReinitialisationMP(@PathVariable Long id, @RequestBody DemandeReinitialisationMP demandeReinitialisationMP) {
|
|
try {
|
|
return new ResponseEntity<>(
|
|
new ApiResponse<>(true, demandeReinitialisationMPService.updateDemandeReinitialisationMP(id, demandeReinitialisationMP), "DemandeReinitialisationMP mis à 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_DEMANDEREINITIALISATIONMP')")
|
|
public ResponseEntity<?> deleteDemandeReinitialisationMPr(@PathVariable Long id) {
|
|
try {
|
|
demandeReinitialisationMPService.deleteDemandeReinitialisationMP(id);
|
|
return new ResponseEntity<>(
|
|
new ApiResponse<>(true, "Demande de Reinitialisation de mot de passe supprimé 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")
|
|
// public ResponseEntity<?> getAllDemandeReinitialisationMPList(@CurrentUser UserPrincipal userPrincipal) {
|
|
// try {
|
|
//
|
|
// User user = userPrincipal.getUser();
|
|
//
|
|
// if (user.getRoles().stream().anyMatch(r -> r.getNom().equals(UserRole.ROLE_ADMIN))) {
|
|
// return new ResponseEntity<>(
|
|
// new ApiResponse<>(true, demandeReinitialisationMPService.getDemandeReinitialisationMPList(), "Liste des demande de Reinitialisation chargée avec succès."),
|
|
// HttpStatus.OK
|
|
// );
|
|
// } else {
|
|
// if (user.getStructure() == null) {
|
|
// return new ResponseEntity<>(
|
|
// new ApiResponse<>(false, "Cet utilisateur n'est pas dans une structure; on ne peut donc pas afficher les demandes de réinitialisation de mot de passe."),
|
|
// HttpStatus.OK
|
|
// );
|
|
// } else {
|
|
// return new ResponseEntity<>(
|
|
// new ApiResponse<>(true, demandeReinitialisationMPService.getDemandeReinitialisationMPNonTraiteList(user.getStructure()), "Liste des demande de Reinitialisation chargée avec succès."),
|
|
// HttpStatus.OK
|
|
// );
|
|
// }
|
|
// }
|
|
//// }else {
|
|
//// if (user.getStructure() == null) {
|
|
//// return new ResponseEntity<>(
|
|
//// new ApiResponse<>(false, "Cet utilisateur n'est pas dans une structure; on ne peut donc pas afficher les demandes de réinitialisation de mot de passe."),
|
|
//// HttpStatus.OK
|
|
//// );
|
|
//// } else {
|
|
//// return new ResponseEntity<>(
|
|
//// new ApiResponse<>(true, demandeReinitialisationMPService.getDemandeReinitialisationMPNonTraiteList(user.getStructure()), "Liste des demande de Reinitialisation 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-paged")
|
|
@PreAuthorize("hasAuthority('READ_DEMANDEREINITIALISATIONMP')")
|
|
public ResponseEntity<?> getAllDemandeReinitialisationMPPaged(@RequestParam int pageNo, @RequestParam int pageSize) {
|
|
try {
|
|
Pageable pageable = PageRequest.of(pageNo, pageSize);
|
|
|
|
return new ResponseEntity<>(
|
|
new ApiResponse<>(true, demandeReinitialisationMPService.getDemandeReinitialisationMPList(pageable), "Liste des demandeReinitialisationMP 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_DEMANDEREINITIALISATIONMP')")
|
|
public ResponseEntity<?> getDemandeReinitialisationMPById(@PathVariable Long id) {
|
|
try {
|
|
return new ResponseEntity<>(
|
|
new ApiResponse<>(true, demandeReinitialisationMPService.getDemandeReinitialisationMPById(id), "DemandeReinitialisationMP trouvé 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("/reset")
|
|
@PreAuthorize("hasAuthority('UPDATE_DEMANDEREINITIALISATIONMP')")
|
|
public ResponseEntity<?> traiterDemande(@RequestParam Long id, @RequestParam String password) {
|
|
try {
|
|
DemandeReinitialisationMP demandeReinitialisationMP = demandeReinitialisationMPService.traiterDemandeReinitialisation(id, password);
|
|
|
|
return new ResponseEntity<>(
|
|
new ApiResponse<>(true,
|
|
new DemandeReinitialisationMPResponse(
|
|
userService.getUserResponseFromUser(demandeReinitialisationMP.getUser()),
|
|
demandeReinitialisationMP.getEtatDemande()
|
|
),
|
|
"Traitement effectué 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);
|
|
}
|
|
}
|
|
}
|