package etunicorn; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * etunicorn-server * Copyright © 2017 Le Club Info Polytech Lille * Tous droits réservés */ @RestController public class PersonneController implements etunicorn.generated.PersonneController { @Autowired private PersonneRepository personneRepository; @Autowired private RoleRepository roleRepository; @Override public ResponseEntity getPersonne() { return new ResponseEntity((List) this.personneRepository.findAll(), HttpStatus.OK); } private ResponseEntity mergePersonne(Personne personne, String carte, Date naissance, String login, String role) { if (carte != null) { personne.setCarte(carte); } if (naissance != null) { personne.setNaissance(naissance); } if (login != null) { personne.setLogin(login); } if (role != null) { Role roleObj = roleRepository.findByNom(role); personne.setRole(roleObj); if (roleObj == null) { return new ResponseEntity("Rôle inconnu", HttpStatus.NOT_FOUND); } } try { this.personneRepository.save(personne); } catch (DataIntegrityViolationException e) { return new ResponseEntity(HttpStatus.CONFLICT); } return new ResponseEntity(personne, HttpStatus.CREATED); } @Override public ResponseEntity updatePersonne(@RequestParam(required = false) String carte, @RequestParam(required = false) Date naissance, @RequestParam(required = false) String login, @RequestParam(required = false) String role) { Personne personne = new Personne(); return mergePersonne(personne, carte, naissance, login, role); } @Override public ResponseEntity getPersonneById(@PathVariable BigDecimal idPersonne) { Personne personne = personneRepository.findById(idPersonne.intValueExact()); if (personne == null) { return new ResponseEntity(HttpStatus.NOT_FOUND); } return new ResponseEntity(personne, HttpStatus.OK); } @Override public ResponseEntity updatePersonneById(@PathVariable BigDecimal idPersonne, @RequestParam(required = false) String carte, @RequestParam(required = false) Date naissance, @RequestParam(required = false) String login, @RequestParam(required = false) String role) { Personne personne = personneRepository.findById(idPersonne.intValueExact()); if (personne == null) { return new ResponseEntity(HttpStatus.NOT_FOUND); } return mergePersonne(personne, carte, naissance, login, role); } @Override public ResponseEntity deletePersonneById(@PathVariable BigDecimal idPersonne) { Personne personne = personneRepository.findById(idPersonne.intValueExact()); if (personne == null) { return new ResponseEntity(HttpStatus.NOT_FOUND); } personneRepository.delete(personne); return new ResponseEntity(personne, HttpStatus.NO_CONTENT); } }