From 7c352cad951c30a96cbb39937766896865ef5969 Mon Sep 17 00:00:00 2001 From: Hedi Date: Sat, 5 Feb 2022 15:36:35 +0100 Subject: [PATCH] calendrier : modif model + repository + controller --- .../controller/EvenementController.java | 55 ++++++++++++++++--- .../java/fr/organizee/model/Evenement.java | 44 +++++++-------- .../repository/EvenementRepository.java | 7 +++ src/main/resources/data.sql | 9 ++- 4 files changed, 84 insertions(+), 31 deletions(-) diff --git a/src/main/java/fr/organizee/controller/EvenementController.java b/src/main/java/fr/organizee/controller/EvenementController.java index a5c3673..f6a32a8 100644 --- a/src/main/java/fr/organizee/controller/EvenementController.java +++ b/src/main/java/fr/organizee/controller/EvenementController.java @@ -1,15 +1,14 @@ package fr.organizee.controller; import fr.organizee.model.Evenement; -import fr.organizee.model.Membre; -import fr.organizee.model.Team; +import fr.organizee.model.Menu; import fr.organizee.repository.EvenementRepository; -import fr.organizee.repository.TeamRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpStatus; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; +import javax.persistence.EntityNotFoundException; import java.util.List; import java.util.Optional; @@ -21,17 +20,59 @@ public class EvenementController { @Autowired private EvenementRepository evenementRepo; - // Recupérer tout les evenements pour une team {id} - @GetMapping(value = "/all/{id}") - public ResponseEntity getAll(){ + // Recupérer tout les evenements pour une team {team_id} + @GetMapping(value = "/team/{team_id}") + public ResponseEntity findByTeamId(@PathVariable int team_id){ List liste = null; try { - liste = evenementRepo.findAll(); + liste = evenementRepo.FindEvenementsByTeam(team_id); } catch (Exception e) { return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null); } return ResponseEntity.status(HttpStatus.OK).body(liste); } + + // Ajoute un evenement au calendrier + @PostMapping(value="/add", produces="application/json", consumes="application/json") + public ResponseEntity addTache(@RequestBody Evenement event){ + Evenement resultEvent = null; + try { + resultEvent = evenementRepo.saveAndFlush(event); + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage()); + } + + return ResponseEntity.status(HttpStatus.CREATED).body(resultEvent); + } + + //Mise a jour d'un evenement par son ID + @PutMapping("/update/{id}") + //@PreAuthorize("hasRole('ROLE_PARENT')") + public ResponseEntity updateEvenement(@RequestBody Evenement event, @PathVariable Integer id) throws Exception { + Evenement resultEvenement = null; + try { + resultEvenement = evenementRepo.save(event); + + } catch (Exception e) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage()); + } + + return ResponseEntity.status(HttpStatus.OK).body(resultEvenement); + } + + //Efface un evenement par son ID + @DeleteMapping(value = "/delete/{id}") + //@PreAuthorize("hasRole('ROLE_PARENT')") + public ResponseEntity deleteEvenement(@PathVariable int id){ + try { + evenementRepo.delete(evenementRepo.getById(id)); + return ResponseEntity.status(HttpStatus.OK).body("Evenement effacé !"); + + } catch (EntityNotFoundException e) { + + return ResponseEntity.status(HttpStatus.OK).body("Evenement introuvable !"); + } + } } diff --git a/src/main/java/fr/organizee/model/Evenement.java b/src/main/java/fr/organizee/model/Evenement.java index 936cdaa..f2f83fd 100644 --- a/src/main/java/fr/organizee/model/Evenement.java +++ b/src/main/java/fr/organizee/model/Evenement.java @@ -11,10 +11,10 @@ public class Evenement { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; - private LocalDateTime eventDebut; - private LocalDateTime eventFin; + private LocalDateTime start; + private LocalDateTime end; private int allDay; - private String libelle; + private String text; @ManyToOne @JoinColumn(name="MEMBRE_ID") @JsonIgnoreProperties("evenement") @@ -27,12 +27,12 @@ public class Evenement { public Evenement() { } - public Evenement(int id, LocalDateTime eventDebut, LocalDateTime eventFin, int allDay, String libelle, Membre membre, Team team) { + public Evenement(int id, LocalDateTime start, LocalDateTime end, int allDay, String text, Membre membre, Team team) { this.id = id; - this.eventDebut = eventDebut; - this.eventFin = eventFin; + this.start = start; + this.end = end; this.allDay = allDay; - this.libelle = libelle; + this.text = text; this.membre = membre; this.team = team; } @@ -45,20 +45,20 @@ public class Evenement { this.id = id; } - public LocalDateTime getEventDebut() { - return eventDebut; + public LocalDateTime getStart() { + return start; } - public void setEventDebut(LocalDateTime eventDebut) { - this.eventDebut = eventDebut; + public void setStart(LocalDateTime start) { + this.start = start; } - public LocalDateTime getEventFin() { - return eventFin; + public LocalDateTime getEnd() { + return end; } - public void setEventFin(LocalDateTime eventFin) { - this.eventFin = eventFin; + public void setEnd(LocalDateTime end) { + this.end = end; } public int getAllDay() { @@ -69,12 +69,12 @@ public class Evenement { this.allDay = allDay; } - public String getLibelle() { - return libelle; + public String getText() { + return text; } - public void setLibelle(String libelle) { - this.libelle = libelle; + public void setText(String text) { + this.text = text; } public Membre getMembre() { @@ -97,10 +97,10 @@ public class Evenement { public String toString() { return "Evenement{" + "id=" + id + - ", eventDebut=" + eventDebut + - ", eventFin=" + eventFin + + ", start=" + start + + ", end=" + end + ", allDay=" + allDay + - ", libelle='" + libelle + '\'' + + ", text='" + text + '\'' + ", membre=" + membre + ", team=" + team + '}'; diff --git a/src/main/java/fr/organizee/repository/EvenementRepository.java b/src/main/java/fr/organizee/repository/EvenementRepository.java index 51164c5..e8663ee 100644 --- a/src/main/java/fr/organizee/repository/EvenementRepository.java +++ b/src/main/java/fr/organizee/repository/EvenementRepository.java @@ -2,8 +2,15 @@ package fr.organizee.repository; import fr.organizee.model.Evenement; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; import org.springframework.stereotype.Repository; +import java.util.List; + + @Repository public interface EvenementRepository extends JpaRepository { + @Query(value = "select * from evenement where team_id = :team_id", nativeQuery = true) + List FindEvenementsByTeam(@Param("team_id") int team_id); } diff --git a/src/main/resources/data.sql b/src/main/resources/data.sql index 0af0130..4bc52c5 100644 --- a/src/main/resources/data.sql +++ b/src/main/resources/data.sql @@ -37,5 +37,10 @@ INSERT INTO `tache` (`id`, `etat`, `texte`, `todolist_id`) VALUES (4, 0, 'Acheter un sapin', 3), (5, 0, 'Trouver un repas', 3); -INSERT INTO `evenement` (`id`, `all_day`, `event_debut`, `event_fin`, `libelle`, `membre_id`, `team_id`) VALUES - (1, 0, '2022-01-13 09:00:33', '2022-01-13 13:04:38', 'Simplon', 1, 1); \ No newline at end of file +INSERT INTO `evenement` (`id`, `all_day`, `start`, `end`, `text`, `membre_id`, `team_id`) VALUES + (1, 0, '2022-02-04 09:00:00', '2022-02-04 13:00:00', 'Simplon', 1, 1), + (2, 0, '2022-02-03 12:00:00', '2022-02-03 13:00:00', 'Footing', 2, 1); + +INSERT INTO `menu` (`id`, `date_menu`, `libelle`, `validation_proposition`, `team_id`) VALUES + (1, '2022-01-13', 'Lasagnes', 1, 1), + (2, '2022-01-03', 'Kebab', 1, 1); \ No newline at end of file