This commit is contained in:
Sana EL HIRI 2022-02-18 17:21:07 +01:00
parent c49c926f3d
commit c189362601
10 changed files with 155 additions and 114 deletions

View File

@ -1,4 +1,4 @@
package fr.organizee.dto.controller; package fr.organizee.controller;
import fr.organizee.model.Contact; import fr.organizee.model.Contact;
import fr.organizee.repository.ContactRepository; import fr.organizee.repository.ContactRepository;

View File

@ -1,4 +1,4 @@
package fr.organizee.dto.controller; package fr.organizee.controller;
import fr.organizee.model.Evenement; import fr.organizee.model.Evenement;
import fr.organizee.model.Menu; import fr.organizee.model.Menu;

View File

@ -1,4 +1,4 @@
package fr.organizee.dto.controller; package fr.organizee.controller;
import fr.organizee.model.Mail; import fr.organizee.model.Mail;
import fr.organizee.service.SendMailService; import fr.organizee.service.SendMailService;

View File

@ -1,9 +1,10 @@
package fr.organizee.dto.controller; package fr.organizee.controller;
import fr.organizee.dto.JsonWebToken; import fr.organizee.dto.JsonWebToken;
import fr.organizee.dto.MembreDto; import fr.organizee.dto.MembreDto;
import fr.organizee.exception.ExistingUsernameException; import fr.organizee.exception.ExistingUsernameException;
import fr.organizee.exception.InvalidCredentialsException; import fr.organizee.exception.InvalidCredentialsException;
import fr.organizee.exception.MembreNotFoundException;
import fr.organizee.model.Membre; import fr.organizee.model.Membre;
import fr.organizee.repository.MembreRepository; import fr.organizee.repository.MembreRepository;
import fr.organizee.service.MembreService; import fr.organizee.service.MembreService;
@ -19,21 +20,21 @@ import java.util.List;
import java.util.Optional; import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/* toto */
@RestController @RestController
@CrossOrigin("*") @CrossOrigin("*")
@RequestMapping("/membres") @RequestMapping(value="/membres")
public class MembreController { public class MembreController {
@Autowired @Autowired
private MembreRepository membreRepo; private MembreRepository membreRepo;
@Autowired @Autowired
private MembreService membreService; private MembreService membreService;
@Autowired @Autowired
private BCryptPasswordEncoder passwordEncoder; private BCryptPasswordEncoder passwordEncoder;
public MembreController() {}
@ResponseBody @ResponseBody
public String home() public String home()
{ {
@ -43,27 +44,140 @@ public class MembreController {
return sb.toString(); return sb.toString();
} }
// Récupère tout les membres de la base /**
* Rechercher tous les membres
* @return
* http://localhost:8088/membres/all
*/
@GetMapping(value = "/all") @GetMapping(value = "/all")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')") //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity<?> getAll(){ public ResponseEntity<?> getAllMembres(){
List<Membre> liste = null; List<Membre> listeMembres;
try try
{ {
liste = membreRepo.findAll(); listeMembres = membreRepo.findAll();
} catch (Exception e) { } catch (Exception e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null); MembreNotFoundException commandeNotFoundException = new MembreNotFoundException();
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(commandeNotFoundException.getMessage());
} }
return ResponseEntity.status(HttpStatus.OK).body(liste); return ResponseEntity.status(HttpStatus.OK).body(listeMembres);
} }
@GetMapping("/admin/all") /**
* Rechercher tous les membres admin
* @return
* http://localhost:8088/membres/admin/all
*/
@GetMapping(value="/admin/all")
@PreAuthorize("hasRole('ROLE_PARENT')") @PreAuthorize("hasRole('ROLE_PARENT')")
public List<MembreDto> getAllAdminUsers() { public List<MembreDto> getAllAdminUsers() {
return membreService.findAllUsers().stream().map(appUser -> new MembreDto(appUser.getEmail(), appUser.getRoleList())).collect(Collectors.toList()); return membreService.findAllUsers().stream().map(appUser ->
new MembreDto(appUser.getEmail(),
appUser.getRoleList())).collect(Collectors.toList());
} }
/**
* Rechercher un membre par son Id
* @return
* http://localhost:8088/membres/1
*/
@GetMapping(value="/{id}")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity<?> getMembreById(@PathVariable int id) {
Optional<Membre> membre;
try {
membre = membreRepo.findById(id);
if (membre.isPresent()) {
return ResponseEntity.status(HttpStatus.OK).body(membre);
} else {
MembreNotFoundException membreNotFoundException = new MembreNotFoundException(id);
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(membreNotFoundException.getMessage());
}
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
}
/**
* Ajouter un membre et inscription
* @return
* http://localhost:8088/membres/sign-up
*/
@PostMapping(value="/sign-up")
public ResponseEntity<JsonWebToken> signUp(@RequestBody Membre membre) {
try {
return ResponseEntity.ok(new JsonWebToken(membreService.signup(membre)));
} catch (ExistingUsernameException ex) {
return ResponseEntity.badRequest().build();
}
}
/**
* Modifier une commande par son Id
* @return
* http://localhost:8088/membres/update/1
*
*/
@PutMapping("/update/{id}")
//@PreAuthorize("hasRole('ROLE_PARENT')")
public ResponseEntity<?> updateMembre(@RequestBody Membre membre, @PathVariable int id){
Optional<Membre> membreUpdate;
try {
membreUpdate = membreRepo.findById(id);
// membre trouvé
if(membreUpdate.isPresent()){
membre.setId(membreUpdate.get().getId());
membreRepo.save(membre);
}
//membre inconnu
else{
MembreNotFoundException membreNotFoundException = new MembreNotFoundException(id);
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(membreNotFoundException.getMessage());
}
//gestion de l'erreur
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).build();
}
// retour membre
return ResponseEntity.status(HttpStatus.OK).body(membre);
}
/**
* Supprimer un membre par son Id
* @return
* http://localhost:8088/membres/delete/1
*/
@DeleteMapping(value = "/delete/{id}")
//@PreAuthorize("hasRole('ROLE_PARENT')")
public ResponseEntity<?> deleteMembre(@PathVariable int id){
try {
membreRepo.getById(id);
membreRepo.deleteById(id);
return ResponseEntity.status(HttpStatus.OK).body("Membre supprimé !");
} catch (Exception e) {
MembreNotFoundException membreNotFoundException = new membreNotFoundException(id);
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(membreNotFoundException.getMessage());
}
}
/**************************** Login / Se connceter ****************************/
@PostMapping("/sign-in")
public ResponseEntity<JsonWebToken> signIn(@RequestBody Membre membre) {
try {
return ResponseEntity.ok(new JsonWebToken(membreService.signin(membre.getEmail(), membre.getPassword())));
} catch (InvalidCredentialsException ex) {
return ResponseEntity.badRequest().build();
}
}
/********************* Gestion Mot de Passe ************************************/
//cette methode ne fonctionne pas parce que ça affiche "trouvé" dans tous les cas //cette methode ne fonctionne pas parce que ça affiche "trouvé" dans tous les cas
@GetMapping("/forgot-password") @GetMapping("/forgot-password")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')") //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
@ -104,98 +218,5 @@ public class MembreController {
} }
//Récupérer les informations d'un membre par son ID
@GetMapping(value = "/{id}")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity<?> findById(@PathVariable int id){
Optional<Membre> membre = null;
try
{
membre = membreRepo.findById(id);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
}
return ResponseEntity.status(HttpStatus.OK).body(membre);
}
//Efface un membre par son ID
@DeleteMapping(value = "/delete/{id}")
//@PreAuthorize("hasRole('ROLE_PARENT')")
public ResponseEntity<?> deleteMembre(@PathVariable int id){
try {
membreRepo.delete(membreRepo.getById(id));
//membreRepo.deleteById(id);
return ResponseEntity.status(HttpStatus.OK).body("Membre effacé !");
} catch (EntityNotFoundException e) {
return ResponseEntity.status(HttpStatus.OK).body("Membre introuvable !");
}
}
//Ajouter un membre et inscription
@PostMapping("/sign-up")
public ResponseEntity<JsonWebToken> signUp(@RequestBody Membre membre) {
try {
return ResponseEntity.ok(new JsonWebToken(membreService.signup(membre)));
} catch (ExistingUsernameException ex) {
return ResponseEntity.badRequest().build();
}
}
//Login
@PostMapping("/sign-in")
public ResponseEntity<JsonWebToken> signIn(@RequestBody Membre membre) {
try {
return ResponseEntity.ok(new JsonWebToken(membreService.signin(membre.getEmail(), membre.getPassword())));
} catch (InvalidCredentialsException ex) {
return ResponseEntity.badRequest().build();
}
}
//Met a jour les informations d'un membre par son ID
@PutMapping("/update/{id}")
//@PreAuthorize("hasRole('ROLE_PARENT')")
public ResponseEntity<?> updateMembre(@RequestBody Membre membre, @PathVariable Integer id) throws Exception {
Membre resultMembre = null;
try {
resultMembre = membreRepo.save(membre);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
}
return ResponseEntity.status(HttpStatus.OK).body(resultMembre);
}
// UPDATE SUR UN CHAMPS
// @PutMapping("/update/{id}")
// public ResponseEntity<?> updateMembre(@RequestBody Membre membre, @PathVariable Integer id) throws Exception {
// Membre resultMembre = null;
// Membre oldMembre = membreRepo.getById(id);
// oldMembre.setNom(membre.getNom());
// //Membre resultMembre = membreRepo.getById(id);
// try {
// resultMembre = membreRepo.save(oldMembre);
//
// } catch (Exception e) {
// return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
// }
//
// return ResponseEntity.status(HttpStatus.OK).body(resultMembre);
// }
// @GetMapping(value = "/team/{id}")
// public ResponseEntity<?> findTeamById(@PathVariable int id){
// Optional<Team> liste = null;
// try
// {
// liste = teamRepo.findById(id);
// } catch (Exception e) {
// return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
// }
//
// return ResponseEntity.status(HttpStatus.OK).body(liste);
// }
} }

View File

@ -1,4 +1,4 @@
package fr.organizee.dto.controller; package fr.organizee.controller;
import fr.organizee.model.Menu; import fr.organizee.model.Menu;
import fr.organizee.model.Team; import fr.organizee.model.Team;

View File

@ -1,4 +1,4 @@
package fr.organizee.dto.controller; package fr.organizee.controller;
import fr.organizee.model.Tache; import fr.organizee.model.Tache;
import fr.organizee.model.TodoList; import fr.organizee.model.TodoList;

View File

@ -1,4 +1,4 @@
package fr.organizee.dto.controller; package fr.organizee.controller;
import fr.organizee.model.Team; import fr.organizee.model.Team;
import fr.organizee.repository.TeamRepository; import fr.organizee.repository.TeamRepository;

View File

@ -1,4 +1,4 @@
package fr.organizee.dto.controller; package fr.organizee.controller;
import fr.organizee.model.TodoList; import fr.organizee.model.TodoList;
import fr.organizee.repository.TodoListRepository; import fr.organizee.repository.TodoListRepository;

View File

@ -0,0 +1,13 @@
package fr.organizee.exception;
import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus;
public class MembreNotFoundAdvice {
@ResponseBody
@ExceptionHandler(MembreNotFoundException.class)
@ResponseStatus(HttpStatus.NOT_FOUND)
String membreNotFoundHandler(MembreNotFoundException ex){return ex.getMessage();}
}

View File

@ -0,0 +1,7 @@
package fr.organizee.exception;
public class MembreNotFoundException extends RuntimeException{
public MembreNotFoundException(int id){ super("Membre" + id + " introuvable");}
public MembreNotFoundException(){ super("Membres introuvables");}
}