From b874fb16a24c7c6eddd48715af03ae1cffa5cea4 Mon Sep 17 00:00:00 2001
From: AlineRinquin <90188226+AlineRinquin@users.noreply.github.com>
Date: Thu, 20 Jan 2022 09:37:14 +0100
Subject: [PATCH 01/21] commit pour pull
---
.idea/Organizee.iml | 9 ---------
.idea/compiler.xml | 2 ++
pom.xml | 13 +++++++------
3 files changed, 9 insertions(+), 15 deletions(-)
delete mode 100644 .idea/Organizee.iml
diff --git a/.idea/Organizee.iml b/.idea/Organizee.iml
deleted file mode 100644
index d6ebd48..0000000
--- a/.idea/Organizee.iml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index a8c4885..c75fd2a 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -6,11 +6,13 @@
+
diff --git a/pom.xml b/pom.xml
index 32eb628..9b437f5 100644
--- a/pom.xml
+++ b/pom.xml
@@ -2,12 +2,7 @@
4.0.0
-
- org.springframework.boot
- spring-boot-starter-parent
- 2.6.1
-
-
+
fr.organizee
organizee
0.0.1-SNAPSHOT
@@ -16,6 +11,12 @@
11
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.6.1
+
+
org.springframework.boot
From 096e9074460454f59084cc91addb4f15d185eca8 Mon Sep 17 00:00:00 2001
From: Hedi
Date: Thu, 20 Jan 2022 09:41:07 +0100
Subject: [PATCH 02/21] debut de tache controller
---
.../controller/EvenementController.java | 37 ++++++
.../organizee/controller/TacheController.java | 85 ++++++++++++++
.../java/fr/organizee/model/Evenement.java | 107 ++++++++++++++++++
.../repository/EvenementRepository.java | 9 ++
.../organizee/repository/TacheRepository.java | 7 +-
5 files changed, 244 insertions(+), 1 deletion(-)
create mode 100644 src/main/java/fr/organizee/controller/EvenementController.java
create mode 100644 src/main/java/fr/organizee/controller/TacheController.java
create mode 100644 src/main/java/fr/organizee/model/Evenement.java
create mode 100644 src/main/java/fr/organizee/repository/EvenementRepository.java
diff --git a/src/main/java/fr/organizee/controller/EvenementController.java b/src/main/java/fr/organizee/controller/EvenementController.java
new file mode 100644
index 0000000..a5c3673
--- /dev/null
+++ b/src/main/java/fr/organizee/controller/EvenementController.java
@@ -0,0 +1,37 @@
+package fr.organizee.controller;
+
+import fr.organizee.model.Evenement;
+import fr.organizee.model.Membre;
+import fr.organizee.model.Team;
+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 java.util.List;
+import java.util.Optional;
+
+@RestController
+@CrossOrigin("*")
+@RequestMapping("/evenements")
+public class EvenementController {
+
+ @Autowired
+ private EvenementRepository evenementRepo;
+
+ // Recupérer tout les evenements pour une team {id}
+ @GetMapping(value = "/all/{id}")
+ public ResponseEntity> getAll(){
+ List liste = null;
+ try
+ {
+ liste = evenementRepo.findAll();
+ } catch (Exception e) {
+ return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
+ }
+
+ return ResponseEntity.status(HttpStatus.OK).body(liste);
+ }
+}
diff --git a/src/main/java/fr/organizee/controller/TacheController.java b/src/main/java/fr/organizee/controller/TacheController.java
new file mode 100644
index 0000000..8408ada
--- /dev/null
+++ b/src/main/java/fr/organizee/controller/TacheController.java
@@ -0,0 +1,85 @@
+package fr.organizee.controller;
+
+import fr.organizee.model.Membre;
+import fr.organizee.model.Tache;
+import fr.organizee.repository.MembreRepository;
+import fr.organizee.repository.TacheRepository;
+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;
+
+@RestController
+@CrossOrigin("*")
+@RequestMapping("/taches")
+public class TacheController {
+ @Autowired
+ private TacheRepository tacheRepo;
+
+ @GetMapping(value = "/all")
+ public ResponseEntity> getAll(){
+ List liste = null;
+ try
+ {
+ liste = tacheRepo.findAll();
+ } catch (Exception e) {
+ return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
+ }
+
+ return ResponseEntity.status(HttpStatus.OK).body(liste);
+ }
+
+ @GetMapping(value = "/{id}")
+ public ResponseEntity> findById(@PathVariable int id){
+ Optional tache = null;
+ try
+ {
+ tache = tacheRepo.findById(id);
+ } catch (Exception e) {
+ return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
+ }
+
+ return ResponseEntity.status(HttpStatus.OK).body(tache);
+ }
+
+ @DeleteMapping(value = "/delete/{id}")
+ public ResponseEntity> deleteTache(@PathVariable int id){
+ try {
+ tacheRepo.delete(tacheRepo.getById(id));
+ return ResponseEntity.status(HttpStatus.OK).body("Tache effacée !");
+
+ } catch (EntityNotFoundException e) {
+
+ return ResponseEntity.status(HttpStatus.OK).body("Tache introuvable !");
+ }
+ }
+
+ @PostMapping(value="/add", produces="application/json", consumes="application/json")
+ public ResponseEntity> addTache(@RequestBody Tache tache){
+ Tache resultTache = null;
+ try {
+ resultTache = tacheRepo.saveAndFlush(tache);
+ } catch (Exception e) {
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
+ }
+
+ return ResponseEntity.status(HttpStatus.CREATED).body(resultTache);
+ }
+
+ @PutMapping("/update/{id}")
+ public ResponseEntity> updateTache(@RequestBody Tache tache, @PathVariable Integer id) throws Exception {
+ Tache resultTache = null;
+ try {
+ resultTache = tacheRepo.save(tache);
+
+ } catch (Exception e) {
+ return ResponseEntity.status(HttpStatus.NOT_FOUND).body(e.getMessage());
+ }
+
+ return ResponseEntity.status(HttpStatus.OK).body(resultTache);
+ }
+}
diff --git a/src/main/java/fr/organizee/model/Evenement.java b/src/main/java/fr/organizee/model/Evenement.java
new file mode 100644
index 0000000..15a355f
--- /dev/null
+++ b/src/main/java/fr/organizee/model/Evenement.java
@@ -0,0 +1,107 @@
+package fr.organizee.model;
+
+import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
+
+import javax.persistence.*;
+import java.time.LocalDateTime;
+
+@Entity
+public class Evenement {
+ @Id
+ @GeneratedValue(strategy = GenerationType.IDENTITY)
+ private int id;
+ private LocalDateTime eventDebut;
+ private LocalDateTime eventFin;
+ private int allDay;
+ private String libelle;
+ @ManyToOne(cascade = CascadeType.MERGE)
+ @JoinColumn(name="MEMBRE_ID")
+ @JsonIgnoreProperties("evenement")
+ private Membre membre;
+ @ManyToOne(cascade = CascadeType.MERGE)
+ @JoinColumn(name="TEAM_ID")
+ @JsonIgnoreProperties("evenement")
+ private Team team;
+
+ public Evenement() {
+ }
+
+ public Evenement(int id, LocalDateTime eventDebut, LocalDateTime eventFin, int allDay, String libelle, Membre membre, Team team) {
+ this.id = id;
+ this.eventDebut = eventDebut;
+ this.eventFin = eventFin;
+ this.allDay = allDay;
+ this.libelle = libelle;
+ this.membre = membre;
+ this.team = team;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+
+ public LocalDateTime getEventDebut() {
+ return eventDebut;
+ }
+
+ public void setEventDebut(LocalDateTime eventDebut) {
+ this.eventDebut = eventDebut;
+ }
+
+ public LocalDateTime getEventFin() {
+ return eventFin;
+ }
+
+ public void setEventFin(LocalDateTime eventFin) {
+ this.eventFin = eventFin;
+ }
+
+ public int getAllDay() {
+ return allDay;
+ }
+
+ public void setAllDay(int allDay) {
+ this.allDay = allDay;
+ }
+
+ public String getLibelle() {
+ return libelle;
+ }
+
+ public void setLibelle(String libelle) {
+ this.libelle = libelle;
+ }
+
+ public Membre getMembre() {
+ return membre;
+ }
+
+ public void setMembre(Membre membre) {
+ this.membre = membre;
+ }
+
+ public Team getTeam() {
+ return team;
+ }
+
+ public void setTeam(Team team) {
+ this.team = team;
+ }
+
+ @Override
+ public String toString() {
+ return "Evenement{" +
+ "id=" + id +
+ ", eventDebut=" + eventDebut +
+ ", eventFin=" + eventFin +
+ ", allDay=" + allDay +
+ ", libelle='" + libelle + '\'' +
+ ", membre=" + membre +
+ ", team=" + team +
+ '}';
+ }
+}
diff --git a/src/main/java/fr/organizee/repository/EvenementRepository.java b/src/main/java/fr/organizee/repository/EvenementRepository.java
new file mode 100644
index 0000000..51164c5
--- /dev/null
+++ b/src/main/java/fr/organizee/repository/EvenementRepository.java
@@ -0,0 +1,9 @@
+package fr.organizee.repository;
+
+import fr.organizee.model.Evenement;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface EvenementRepository extends JpaRepository {
+}
diff --git a/src/main/java/fr/organizee/repository/TacheRepository.java b/src/main/java/fr/organizee/repository/TacheRepository.java
index 17c22b8..2e52ef2 100644
--- a/src/main/java/fr/organizee/repository/TacheRepository.java
+++ b/src/main/java/fr/organizee/repository/TacheRepository.java
@@ -1,4 +1,9 @@
package fr.organizee.repository;
-public interface TacheRepository {
+import fr.organizee.model.Tache;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.stereotype.Repository;
+
+@Repository
+public interface TacheRepository extends JpaRepository {
}
From 094a61951a934c45588f5980ab8e5fae7b618dc3 Mon Sep 17 00:00:00 2001
From: Hedi
Date: Fri, 21 Jan 2022 14:45:37 +0100
Subject: [PATCH 03/21] fix: pb update en cascade, ajout de Tache et Todolist
(class et repository)
---
.idea/compiler.xml | 1 +
.../controller/ContactController.java | 3 -
.../controller/MembreController.java | 36 ++-------
.../organizee/controller/MenuController.java | 18 +++--
.../organizee/controller/TacheController.java | 22 +++++-
.../organizee/controller/TeamController.java | 3 +-
.../controller/TodoListController.java | 75 +++++++++++++++++++
src/main/java/fr/organizee/model/Contact.java | 2 +-
src/main/java/fr/organizee/model/Membre.java | 2 +-
src/main/java/fr/organizee/model/Menu.java | 25 ++++++-
src/main/java/fr/organizee/model/Tache.java | 2 +-
src/main/java/fr/organizee/model/Team.java | 8 +-
.../java/fr/organizee/model/TodoList.java | 24 +++++-
.../organizee/repository/TacheRepository.java | 8 ++
.../repository/TodoListRepository.java | 7 ++
15 files changed, 180 insertions(+), 56 deletions(-)
create mode 100644 src/main/java/fr/organizee/controller/TodoListController.java
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index c75fd2a..a500b21 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -7,6 +7,7 @@
+
diff --git a/src/main/java/fr/organizee/controller/ContactController.java b/src/main/java/fr/organizee/controller/ContactController.java
index 5186d12..ef79042 100644
--- a/src/main/java/fr/organizee/controller/ContactController.java
+++ b/src/main/java/fr/organizee/controller/ContactController.java
@@ -1,10 +1,7 @@
package fr.organizee.controller;
import fr.organizee.model.Contact;
-import fr.organizee.model.Membre;
-import fr.organizee.model.Team;
import fr.organizee.repository.ContactRepository;
-import fr.organizee.repository.TeamRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
diff --git a/src/main/java/fr/organizee/controller/MembreController.java b/src/main/java/fr/organizee/controller/MembreController.java
index e80f339..b4a85db 100644
--- a/src/main/java/fr/organizee/controller/MembreController.java
+++ b/src/main/java/fr/organizee/controller/MembreController.java
@@ -5,9 +5,7 @@ import fr.organizee.dto.MembreDto;
import fr.organizee.exception.ExistingUsernameException;
import fr.organizee.exception.InvalidCredentialsException;
import fr.organizee.model.Membre;
-//import fr.organizee.model.Team;
import fr.organizee.repository.MembreRepository;
-//import fr.organizee.repository.TeamRepository;
import fr.organizee.service.MembreService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -32,10 +30,6 @@ public class MembreController {
@Autowired
private MembreService membreService;
-// @Autowired
-// private TeamRepository teamRepo;
-
-// @RequestMapping("/membres")
@ResponseBody
public String home()
{
@@ -45,6 +39,7 @@ public class MembreController {
return sb.toString();
}
+ // Récupère tout les membres de la base
@GetMapping(value = "/all")
@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> getAll(){
@@ -66,21 +61,9 @@ public class MembreController {
}
-// @GetMapping(value = "/team/all")
-// public ResponseEntity> getAllTeam(){
-// List liste = null;
-// try
-// {
-// liste = teamRepo.findAll();
-// } catch (Exception e) {
-// return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
-// }
-//
-// return ResponseEntity.status(HttpStatus.OK).body(liste);
-// }
-
+ //Récupérer les informations d'un membre par son ID
@GetMapping(value = "/{id}")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> findById(@PathVariable int id){
Optional membre = null;
try
@@ -93,13 +76,7 @@ public class MembreController {
return ResponseEntity.status(HttpStatus.OK).body(membre);
}
-// @GetMapping(value = "/membres/delete/{id}")
-// public void deleteMembreId(@PathVariable("id") Integer id) {
-//
-// membreRepo.deleteById(id);
-//
-// }
-
+ //Efface un membre par son ID
@DeleteMapping(value = "/delete/{id}")
@PreAuthorize("hasRole('ROLE_PARENT')")
public ResponseEntity> deleteMembre(@PathVariable int id){
@@ -114,6 +91,7 @@ public class MembreController {
}
}
+ //Ajouter un membre et inscription
@PostMapping("/sign-up")
public ResponseEntity signUp(@RequestBody Membre membre) {
try {
@@ -123,6 +101,7 @@ public class MembreController {
}
}
+ //Login
@PostMapping("/sign-in")
public ResponseEntity signIn(@RequestBody Membre membre) {
try {
@@ -132,8 +111,9 @@ public class MembreController {
}
}
+ //Met a jour les informations d'un membre par son ID
@PutMapping("/update/{id}")
- @PreAuthorize("hasRole('ROLE_PARENT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT')")
public ResponseEntity> updateMembre(@RequestBody Membre membre, @PathVariable Integer id) throws Exception {
Membre resultMembre = null;
try {
diff --git a/src/main/java/fr/organizee/controller/MenuController.java b/src/main/java/fr/organizee/controller/MenuController.java
index f4e4ec8..b7db085 100644
--- a/src/main/java/fr/organizee/controller/MenuController.java
+++ b/src/main/java/fr/organizee/controller/MenuController.java
@@ -1,6 +1,5 @@
package fr.organizee.controller;
-import fr.organizee.model.Contact;
import fr.organizee.model.Menu;
import fr.organizee.repository.MenuRepository;
import org.springframework.beans.factory.annotation.Autowired;
@@ -21,8 +20,9 @@ public class MenuController {
@Autowired
private MenuRepository menuRepository;
+ //Récupère les infos d'un menu par son ID
@GetMapping(value = "/{id}")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> findById(@PathVariable int id){
Optional
-
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
mysql
mysql-connector-java
diff --git a/src/main/java/fr/organizee/controller/MailController.java b/src/main/java/fr/organizee/controller/MailController.java
new file mode 100644
index 0000000..ad07b51
--- /dev/null
+++ b/src/main/java/fr/organizee/controller/MailController.java
@@ -0,0 +1,40 @@
+package fr.organizee.controller;
+
+import fr.organizee.model.Mail;
+import fr.organizee.service.SendMailService;
+import org.springframework.http.HttpStatus;
+import org.springframework.http.ResponseEntity;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.mail.MessagingException;
+
+@RestController
+@RequestMapping("/mail")
+public class MailController {
+ SendMailService service;
+
+ public MailController(SendMailService service) {
+ this.service = service;
+ }
+
+ @PostMapping("/send")
+ public ResponseEntity sendMail(@RequestBody Mail mail) {
+ service.sendMail(mail);
+ return new ResponseEntity<>("Email Sent successfully", HttpStatus.OK);
+ }
+
+ @PostMapping("/html")
+ public ResponseEntity sendMailHTML(@RequestBody Mail mail) throws MessagingException {
+ service.sendMailHTML(mail);
+ return new ResponseEntity<>("HTML mail sent successfully", HttpStatus.OK);
+ }
+
+ @PostMapping("/attachment")
+ public ResponseEntity sendAttachmentEmail(@RequestBody Mail mail) throws MessagingException {
+ service.sendMailWithAttachments(mail);
+ return new ResponseEntity<>("Attachment mail sent successfully", HttpStatus.OK);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/fr/organizee/model/Mail.java b/src/main/java/fr/organizee/model/Mail.java
new file mode 100644
index 0000000..cbd551b
--- /dev/null
+++ b/src/main/java/fr/organizee/model/Mail.java
@@ -0,0 +1,41 @@
+package fr.organizee.model;
+
+public class Mail {
+ private String recipient;
+ private String subject;
+ private String message;
+
+ public Mail() {
+ }
+
+ public Mail(String recipient, String subject, String message) {
+ this.recipient = recipient;
+ this.subject = subject;
+ this.message = message;
+ }
+
+ public String getRecipient() {
+ return recipient;
+ }
+
+ public void setRecipient(String recipient) {
+ this.recipient = recipient;
+ }
+
+ public String getSubject() {
+ return subject;
+ }
+
+ public void setSubject(String subject) {
+ this.subject = subject;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public void setMessage(String message) {
+ this.message = message;
+ }
+}
+
diff --git a/src/main/java/fr/organizee/service/SendMailService.java b/src/main/java/fr/organizee/service/SendMailService.java
new file mode 100644
index 0000000..9437b10
--- /dev/null
+++ b/src/main/java/fr/organizee/service/SendMailService.java
@@ -0,0 +1,15 @@
+package fr.organizee.service;
+
+import fr.organizee.model.Mail;
+
+import javax.mail.MessagingException;
+
+public interface SendMailService {
+ void sendMail(Mail mail);
+
+ void sendMailHTML(Mail mail) throws MessagingException;
+
+ void sendMailWithAttachments(Mail mail) throws MessagingException;
+}
+
+
diff --git a/src/main/java/fr/organizee/service/SendMailServiceImpl.java b/src/main/java/fr/organizee/service/SendMailServiceImpl.java
new file mode 100644
index 0000000..c77f675
--- /dev/null
+++ b/src/main/java/fr/organizee/service/SendMailServiceImpl.java
@@ -0,0 +1,68 @@
+package fr.organizee.service;
+
+
+import fr.organizee.model.Mail;
+import org.springframework.core.io.ClassPathResource;
+import org.springframework.mail.SimpleMailMessage;
+import org.springframework.mail.javamail.JavaMailSender;
+import org.springframework.mail.javamail.MimeMessageHelper;
+import org.springframework.stereotype.Service;
+
+import javax.mail.MessagingException;
+import javax.mail.internet.MimeMessage;
+
+@Service
+public class SendMailServiceImpl implements SendMailService {
+ private final JavaMailSender javaMailSender;
+
+ public SendMailServiceImpl(JavaMailSender javaMailSender) {
+ this.javaMailSender = javaMailSender;
+ }
+
+ @Override
+ public void sendMail(Mail mail) {
+
+ SimpleMailMessage msg = new SimpleMailMessage();
+ msg.setTo(mail.getRecipient(), mail.getRecipient());
+
+ msg.setSubject(mail.getSubject());
+ msg.setText(mail.getMessage());
+
+ javaMailSender.send(msg);
+ }
+
+ @Override
+ public void sendMailHTML(Mail mail) throws MessagingException {
+ MimeMessage msg = javaMailSender.createMimeMessage();
+
+ MimeMessageHelper helper = new MimeMessageHelper(msg, true, "utf-8");
+
+ helper.setTo(mail.getRecipient());
+
+ helper.setSubject(mail.getSubject());
+
+ String htmlMsg = "Im testing send a HTML email
"
+ +"";
+
+ msg.setContent(htmlMsg, "text/html");
+
+ javaMailSender.send(msg);
+ }
+
+ @Override
+ public void sendMailWithAttachments(Mail mail) throws MessagingException {
+ MimeMessage msg = javaMailSender.createMimeMessage();
+
+ MimeMessageHelper helper = new MimeMessageHelper(msg, true);
+
+ helper.setTo("to_@email");
+
+ helper.setSubject("Testing from Spring Boot");
+
+ helper.setText("Find the attached image", true);
+
+ helper.addAttachment("hero.jpg", new ClassPathResource("hero.jpg"));
+
+ javaMailSender.send(msg);
+ }
+}
\ No newline at end of file
From f23b0fbb87809fad823cc5df0e8d8e3adff9cd9f Mon Sep 17 00:00:00 2001
From: Hedi
Date: Fri, 28 Jan 2022 12:08:49 +0100
Subject: [PATCH 10/21] modif route controller mail
---
src/main/java/fr/organizee/controller/MailController.java | 4 ++--
src/main/java/fr/organizee/service/SendMailServiceImpl.java | 2 +-
2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/src/main/java/fr/organizee/controller/MailController.java b/src/main/java/fr/organizee/controller/MailController.java
index ad07b51..c78984d 100644
--- a/src/main/java/fr/organizee/controller/MailController.java
+++ b/src/main/java/fr/organizee/controller/MailController.java
@@ -12,7 +12,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.mail.MessagingException;
@RestController
-@RequestMapping("/mail")
+@RequestMapping("/sendmail")
public class MailController {
SendMailService service;
@@ -20,7 +20,7 @@ public class MailController {
this.service = service;
}
- @PostMapping("/send")
+ @PostMapping("/text")
public ResponseEntity sendMail(@RequestBody Mail mail) {
service.sendMail(mail);
return new ResponseEntity<>("Email Sent successfully", HttpStatus.OK);
diff --git a/src/main/java/fr/organizee/service/SendMailServiceImpl.java b/src/main/java/fr/organizee/service/SendMailServiceImpl.java
index c77f675..ebb8f65 100644
--- a/src/main/java/fr/organizee/service/SendMailServiceImpl.java
+++ b/src/main/java/fr/organizee/service/SendMailServiceImpl.java
@@ -41,7 +41,7 @@ public class SendMailServiceImpl implements SendMailService {
helper.setSubject(mail.getSubject());
- String htmlMsg = "Im testing send a HTML email
"
+ String htmlMsg = "Test d'envoi de mail au format HTML
"
+"";
msg.setContent(htmlMsg, "text/html");
From aece88e2a81f299f84ee7585b1493be153559609 Mon Sep 17 00:00:00 2001
From: Hedi
Date: Sun, 30 Jan 2022 19:15:01 +0100
Subject: [PATCH 11/21] =?UTF-8?q?fix=20des=20class=20pour=20eviter=20la=20?=
=?UTF-8?q?recursivit=C3=A9=20de=20certain=20en=20json?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../fr/organizee/controller/ContactController.java | 10 +++++-----
src/main/java/fr/organizee/model/Contact.java | 3 ++-
src/main/java/fr/organizee/model/Evenement.java | 7 ++++---
src/main/java/fr/organizee/model/Menu.java | 2 +-
src/main/java/fr/organizee/model/Team.java | 8 ++++++++
src/main/java/fr/organizee/model/TodoList.java | 3 ++-
6 files changed, 22 insertions(+), 11 deletions(-)
diff --git a/src/main/java/fr/organizee/controller/ContactController.java b/src/main/java/fr/organizee/controller/ContactController.java
index ef79042..e93e926 100644
--- a/src/main/java/fr/organizee/controller/ContactController.java
+++ b/src/main/java/fr/organizee/controller/ContactController.java
@@ -21,7 +21,7 @@ public class ContactController {
private ContactRepository contactRepo;
@GetMapping(value = "/{id}")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> findById(@PathVariable int id){
Optional contact = null;
try
@@ -35,7 +35,7 @@ public class ContactController {
}
@GetMapping(value = "team/{team_id}")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> findByTeamId(@PathVariable int team_id){
List contacts = null;
try
@@ -49,7 +49,7 @@ public class ContactController {
}
@PostMapping(value="/add")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> addContact(@RequestBody Contact contact){
Contact resultContact = null;
try {
@@ -62,7 +62,7 @@ public class ContactController {
}
@PutMapping("/update/{id}")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> updateContact(@RequestBody Contact contact, @PathVariable Integer id) throws Exception {
Contact resultContact = null;
try {
@@ -76,7 +76,7 @@ public class ContactController {
}
@DeleteMapping(value = "/delete/{id}")
- @PreAuthorize("hasRole('ROLE_PARENT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT')")
public ResponseEntity> deleteContact(@PathVariable int id){
try {
contactRepo.delete(contactRepo.getById(id));
diff --git a/src/main/java/fr/organizee/model/Contact.java b/src/main/java/fr/organizee/model/Contact.java
index 2c5ffb2..826b2db 100644
--- a/src/main/java/fr/organizee/model/Contact.java
+++ b/src/main/java/fr/organizee/model/Contact.java
@@ -1,5 +1,6 @@
package fr.organizee.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import javax.persistence.*;
@@ -18,7 +19,7 @@ public class Contact {
private LocalDate dateNaissance;
@ManyToOne
@JoinColumn(name="TEAM_ID")
- @JsonIgnoreProperties("contact")
+ @JsonIgnoreProperties({"contact","membre"})
private Team team;
public Contact() {
diff --git a/src/main/java/fr/organizee/model/Evenement.java b/src/main/java/fr/organizee/model/Evenement.java
index 15a355f..936cdaa 100644
--- a/src/main/java/fr/organizee/model/Evenement.java
+++ b/src/main/java/fr/organizee/model/Evenement.java
@@ -1,5 +1,6 @@
package fr.organizee.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import javax.persistence.*;
@@ -14,13 +15,13 @@ public class Evenement {
private LocalDateTime eventFin;
private int allDay;
private String libelle;
- @ManyToOne(cascade = CascadeType.MERGE)
+ @ManyToOne
@JoinColumn(name="MEMBRE_ID")
@JsonIgnoreProperties("evenement")
private Membre membre;
- @ManyToOne(cascade = CascadeType.MERGE)
+ @ManyToOne
@JoinColumn(name="TEAM_ID")
- @JsonIgnoreProperties("evenement")
+ @JsonIgnoreProperties({"evenement", "membre"})
private Team team;
public Evenement() {
diff --git a/src/main/java/fr/organizee/model/Menu.java b/src/main/java/fr/organizee/model/Menu.java
index e11cba4..dcc5cb0 100644
--- a/src/main/java/fr/organizee/model/Menu.java
+++ b/src/main/java/fr/organizee/model/Menu.java
@@ -15,7 +15,7 @@ public class Menu {
private int validationProposition;
@ManyToOne
@JoinColumn(name="TEAM_ID")
- @JsonIgnoreProperties("menu")
+ @JsonIgnoreProperties({"menu","membre"})
private Team team;
public Menu() {
diff --git a/src/main/java/fr/organizee/model/Team.java b/src/main/java/fr/organizee/model/Team.java
index ded5837..14ff97e 100644
--- a/src/main/java/fr/organizee/model/Team.java
+++ b/src/main/java/fr/organizee/model/Team.java
@@ -1,5 +1,6 @@
package fr.organizee.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import javax.persistence.*;
@@ -12,17 +13,24 @@ public class Team {
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private String nom;
+
@OneToMany(mappedBy = "team", fetch=FetchType.LAZY, cascade = CascadeType.ALL)
@JsonIgnoreProperties("team")
private List membres = new ArrayList<>();
+
@OneToMany(mappedBy = "team", fetch=FetchType.LAZY, cascade = CascadeType.ALL)
@JsonIgnoreProperties("team")
+ @JsonIgnore
private List contacts = new ArrayList<>();
+
@OneToMany(mappedBy = "team", fetch=FetchType.LAZY, cascade = CascadeType.ALL)
@JsonIgnoreProperties("team")
+ @JsonIgnore
private List todolists = new ArrayList<>();
+
@OneToMany(mappedBy = "team", fetch=FetchType.LAZY, cascade = CascadeType.ALL)
@JsonIgnoreProperties("team")
+ @JsonIgnore
private List menus = new ArrayList<>();
public Team() {
diff --git a/src/main/java/fr/organizee/model/TodoList.java b/src/main/java/fr/organizee/model/TodoList.java
index 007e68a..f8ec979 100644
--- a/src/main/java/fr/organizee/model/TodoList.java
+++ b/src/main/java/fr/organizee/model/TodoList.java
@@ -1,5 +1,6 @@
package fr.organizee.model;
+import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import javax.persistence.*;
@@ -14,7 +15,7 @@ public class TodoList {
private String nom;
@ManyToOne
@JoinColumn(name="TEAM_ID")
- @JsonIgnoreProperties("todolist")
+ @JsonIgnoreProperties({"todolist","membre"})
private Team team;
@OneToMany(mappedBy = "todolist", fetch=FetchType.LAZY, cascade = CascadeType.ALL)
@JsonIgnoreProperties("todolist")
From 382b1052d46418071d23f25f8272a68a4f4af265 Mon Sep 17 00:00:00 2001
From: Hedi MJID
Date: Tue, 1 Feb 2022 09:17:11 +0100
Subject: [PATCH 12/21] commentaires
---
src/main/java/fr/organizee/controller/MailController.java | 3 +++
1 file changed, 3 insertions(+)
diff --git a/src/main/java/fr/organizee/controller/MailController.java b/src/main/java/fr/organizee/controller/MailController.java
index c78984d..3543668 100644
--- a/src/main/java/fr/organizee/controller/MailController.java
+++ b/src/main/java/fr/organizee/controller/MailController.java
@@ -20,18 +20,21 @@ public class MailController {
this.service = service;
}
+ // Envoi de mail en text brut
@PostMapping("/text")
public ResponseEntity sendMail(@RequestBody Mail mail) {
service.sendMail(mail);
return new ResponseEntity<>("Email Sent successfully", HttpStatus.OK);
}
+ // Envoi de mail au format HTML
@PostMapping("/html")
public ResponseEntity sendMailHTML(@RequestBody Mail mail) throws MessagingException {
service.sendMailHTML(mail);
return new ResponseEntity<>("HTML mail sent successfully", HttpStatus.OK);
}
+ // Envoi du mail avec une piece jointe
@PostMapping("/attachment")
public ResponseEntity sendAttachmentEmail(@RequestBody Mail mail) throws MessagingException {
service.sendMailWithAttachments(mail);
From ce88e646fddb7c6e7f4d0874720083865b073aed Mon Sep 17 00:00:00 2001
From: Hedi MJID
Date: Tue, 1 Feb 2022 16:06:16 +0100
Subject: [PATCH 13/21] fix destinataire mail
---
src/main/java/fr/organizee/service/SendMailServiceImpl.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/main/java/fr/organizee/service/SendMailServiceImpl.java b/src/main/java/fr/organizee/service/SendMailServiceImpl.java
index ebb8f65..c9974ca 100644
--- a/src/main/java/fr/organizee/service/SendMailServiceImpl.java
+++ b/src/main/java/fr/organizee/service/SendMailServiceImpl.java
@@ -55,7 +55,7 @@ public class SendMailServiceImpl implements SendMailService {
MimeMessageHelper helper = new MimeMessageHelper(msg, true);
- helper.setTo("to_@email");
+ helper.setTo("destinataire@email");
helper.setSubject("Testing from Spring Boot");
From 7c352cad951c30a96cbb39937766896865ef5969 Mon Sep 17 00:00:00 2001
From: Hedi
Date: Sat, 5 Feb 2022 15:36:35 +0100
Subject: [PATCH 14/21] 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
From e5bd6709981c3f707baf4c1a9f7e785ff7cb7ce0 Mon Sep 17 00:00:00 2001
From: Hedi
Date: Sun, 6 Feb 2022 22:50:59 +0100
Subject: [PATCH 15/21] jwt : ajout du userId et du teamId dans le token
---
src/main/java/fr/organizee/security/JwtTokenProvider.java | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/src/main/java/fr/organizee/security/JwtTokenProvider.java b/src/main/java/fr/organizee/security/JwtTokenProvider.java
index 9ec508d..502f9a7 100644
--- a/src/main/java/fr/organizee/security/JwtTokenProvider.java
+++ b/src/main/java/fr/organizee/security/JwtTokenProvider.java
@@ -27,6 +27,8 @@ import io.jsonwebtoken.JwtException;
import io.jsonwebtoken.Jwts;
import io.jsonwebtoken.SignatureAlgorithm;
+import fr.organizee.repository.MembreRepository;
+
/**
* JWT : classe utilitaire chargée de fournir le Jeton (Token) et les vérifications
*/
@@ -44,6 +46,8 @@ public class JwtTokenProvider {
@Autowired
private UserDetailsService userDetailsService;
+ @Autowired
+ private MembreRepository membreRepo;
/**
* Cette méthode d'initialisation s'exécute avant le constructeur
* Elle encode notre code secret en base64 pour la transmission dans le header
@@ -104,6 +108,10 @@ public class JwtTokenProvider {
public String createToken(String email, List roles){
Claims claims = Jwts.claims().setSubject(email);
+ claims.put("userId", membreRepo.findByEmail(email).get().getId());
+ if(membreRepo.findByEmail(email).get().getTeam() != null){
+ claims.put("teamId", membreRepo.findByEmail(email).get().getTeam().getId());
+ }
claims.put("auth", roles.stream().map(s -> new SimpleGrantedAuthority(s.getAuthority())).filter(Objects::nonNull).collect(Collectors.toList()));
System.out.println("claims = "+claims);
From 8a96240fd691befe8beea99d2ec4c3256b952252 Mon Sep 17 00:00:00 2001
From: AlineRinquin <90188226+AlineRinquin@users.noreply.github.com>
Date: Sun, 13 Feb 2022 14:39:49 +0100
Subject: [PATCH 16/21] =?UTF-8?q?ALINE:controller=20contact=20blocage=20pr?=
=?UTF-8?q?=C3=A9authorize?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../fr/organizee/controller/ContactController.java | 10 +++++-----
1 file changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/main/java/fr/organizee/controller/ContactController.java b/src/main/java/fr/organizee/controller/ContactController.java
index ef79042..e93e926 100644
--- a/src/main/java/fr/organizee/controller/ContactController.java
+++ b/src/main/java/fr/organizee/controller/ContactController.java
@@ -21,7 +21,7 @@ public class ContactController {
private ContactRepository contactRepo;
@GetMapping(value = "/{id}")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> findById(@PathVariable int id){
Optional contact = null;
try
@@ -35,7 +35,7 @@ public class ContactController {
}
@GetMapping(value = "team/{team_id}")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> findByTeamId(@PathVariable int team_id){
List contacts = null;
try
@@ -49,7 +49,7 @@ public class ContactController {
}
@PostMapping(value="/add")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> addContact(@RequestBody Contact contact){
Contact resultContact = null;
try {
@@ -62,7 +62,7 @@ public class ContactController {
}
@PutMapping("/update/{id}")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> updateContact(@RequestBody Contact contact, @PathVariable Integer id) throws Exception {
Contact resultContact = null;
try {
@@ -76,7 +76,7 @@ public class ContactController {
}
@DeleteMapping(value = "/delete/{id}")
- @PreAuthorize("hasRole('ROLE_PARENT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT')")
public ResponseEntity> deleteContact(@PathVariable int id){
try {
contactRepo.delete(contactRepo.getById(id));
From 31ec70f02e5f46174536ed4797f10e78061587be Mon Sep 17 00:00:00 2001
From: HarmandI
Date: Tue, 15 Feb 2022 15:39:35 +0100
Subject: [PATCH 17/21] addTache
---
.../java/fr/organizee/controller/TacheController.java | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/src/main/java/fr/organizee/controller/TacheController.java b/src/main/java/fr/organizee/controller/TacheController.java
index 681d760..82ce274 100644
--- a/src/main/java/fr/organizee/controller/TacheController.java
+++ b/src/main/java/fr/organizee/controller/TacheController.java
@@ -1,6 +1,7 @@
package fr.organizee.controller;
import fr.organizee.model.Tache;
+import fr.organizee.model.TodoList;
import fr.organizee.repository.TacheRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -61,10 +62,13 @@ public class TacheController {
}
// Ajoute une tache
- @PostMapping(value="/add", produces="application/json", consumes="application/json")
- public ResponseEntity> addTache(@RequestBody Tache tache){
+ @PostMapping(value="/add/{idTodoList}", produces="application/json", consumes="application/json")
+ public ResponseEntity> addTache(@RequestBody Tache tache,@PathVariable Integer idTodoList){
Tache resultTache = null;
try {
+ TodoList todolist=new TodoList();
+ todolist.setId(idTodoList);
+ tache.setTodolist(todolist);
resultTache = tacheRepo.saveAndFlush(tache);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
From 54bf69a436d93b28c1d014c108a8d597022fbada Mon Sep 17 00:00:00 2001
From: AlineRinquin
Date: Thu, 17 Feb 2022 10:40:56 +0100
Subject: [PATCH 18/21] modification des contact ajout couleur
---
.idea/misc.xml | 3 +++
src/main/java/fr/organizee/model/Contact.java | 18 +++++++++++++++---
2 files changed, 18 insertions(+), 3 deletions(-)
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 06e8b35..2289c27 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -11,4 +11,7 @@
+
+
+
\ No newline at end of file
diff --git a/src/main/java/fr/organizee/model/Contact.java b/src/main/java/fr/organizee/model/Contact.java
index 826b2db..25b2d2d 100644
--- a/src/main/java/fr/organizee/model/Contact.java
+++ b/src/main/java/fr/organizee/model/Contact.java
@@ -11,6 +11,7 @@ public class Contact {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
+ private String couleur;
private String nom;
private String prenom;
private String telephone;
@@ -18,14 +19,15 @@ public class Contact {
private String adresse;
private LocalDate dateNaissance;
@ManyToOne
- @JoinColumn(name="TEAM_ID")
- @JsonIgnoreProperties({"contact","membre"})
+ @JoinColumn(name = "TEAM_ID")
+ @JsonIgnoreProperties({"contact", "membre"})
private Team team;
public Contact() {
}
- public Contact(String nom, String prenom, String telephone, String email, String adresse, LocalDate dateNaissance, Team team) {
+ public Contact(String couleur, String nom, String prenom, String telephone, String email, String adresse, LocalDate dateNaissance, Team team) {
+ this.couleur = couleur;
this.nom = nom;
this.prenom = prenom;
this.telephone = telephone;
@@ -43,6 +45,14 @@ public class Contact {
this.id = id;
}
+ public String getCouleur() {
+ return couleur;
+ }
+
+ public void setCouleur(String couleur) {
+ this.couleur = couleur;
+ }
+
public String getNom() {
return nom;
}
@@ -94,6 +104,7 @@ public class Contact {
public Team getTeam() {
return team;
}
+
public void setTeam(Team team) {
this.team = team;
}
@@ -102,6 +113,7 @@ public class Contact {
public String toString() {
return "Contact{" +
"id=" + id +
+ ", couleur='" + couleur + '\'' +
", nom='" + nom + '\'' +
", prenom='" + prenom + '\'' +
", telephone='" + telephone + '\'' +
From eb7b7777ec8b3a755b31784f947825923a4f8589 Mon Sep 17 00:00:00 2001
From: HarmandI
Date: Thu, 17 Feb 2022 11:38:46 +0100
Subject: [PATCH 19/21] update tache
---
src/main/java/fr/organizee/controller/TacheController.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/main/java/fr/organizee/controller/TacheController.java b/src/main/java/fr/organizee/controller/TacheController.java
index 82ce274..58e5ccc 100644
--- a/src/main/java/fr/organizee/controller/TacheController.java
+++ b/src/main/java/fr/organizee/controller/TacheController.java
@@ -77,11 +77,14 @@ public class TacheController {
return ResponseEntity.status(HttpStatus.CREATED).body(resultTache);
}
- //Met a jour les informations d'une date avec son ID
+ //Met a jour les informations d'une tache avec son ID
@PutMapping("/update/{id}")
public ResponseEntity> updateTache(@RequestBody Tache tache, @PathVariable Integer id) throws Exception {
Tache resultTache = null;
try {
+ TodoList todolist=new TodoList();
+ todolist.setId(tacheRepo.findById(tache.getId()).get().getTodolist().getId());
+ tache.setTodolist(todolist);
resultTache = tacheRepo.save(tache);
} catch (Exception e) {
From 9c72f95494b2d845fc6f0d5076a9ce9941e4d1b9 Mon Sep 17 00:00:00 2001
From: Blandine Bajard <83599148+BlandineBajard@users.noreply.github.com>
Date: Thu, 17 Feb 2022 11:42:52 +0100
Subject: [PATCH 20/21] addMenu
---
.../organizee/controller/MenuController.java | 8 ++++++--
src/main/java/fr/organizee/model/Menu.java | 19 +++++++++----------
.../organizee/repository/MenuRepository.java | 1 +
3 files changed, 16 insertions(+), 12 deletions(-)
diff --git a/src/main/java/fr/organizee/controller/MenuController.java b/src/main/java/fr/organizee/controller/MenuController.java
index b7db085..0ea98e3 100644
--- a/src/main/java/fr/organizee/controller/MenuController.java
+++ b/src/main/java/fr/organizee/controller/MenuController.java
@@ -1,6 +1,7 @@
package fr.organizee.controller;
import fr.organizee.model.Menu;
+import fr.organizee.model.Team;
import fr.organizee.repository.MenuRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
@@ -49,11 +50,14 @@ public class MenuController {
}
//Ajoute un nouveau menu
- @PostMapping(value="/add")
+ @PostMapping(value="/add/{team_id}", produces="application/json", consumes= "application/json")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
- public ResponseEntity> addMenu(@RequestBody Menu menu){
+ public ResponseEntity> addMenu(@RequestBody Menu menu, @PathVariable Integer team_id){
Menu resultMenu = null;
try {
+ Team team=new Team();
+ team.setId(team_id);
+ menu.setTeam(team);
resultMenu = menuRepository.saveAndFlush(menu);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
diff --git a/src/main/java/fr/organizee/model/Menu.java b/src/main/java/fr/organizee/model/Menu.java
index dcc5cb0..22a1ab1 100644
--- a/src/main/java/fr/organizee/model/Menu.java
+++ b/src/main/java/fr/organizee/model/Menu.java
@@ -12,7 +12,7 @@ public class Menu {
private int id;
private String libelle;
private LocalDate dateMenu;
- private int validationProposition;
+ // private int validationProposition;
@ManyToOne
@JoinColumn(name="TEAM_ID")
@JsonIgnoreProperties({"menu","membre"})
@@ -21,10 +21,10 @@ public class Menu {
public Menu() {
}
- public Menu(String libelle, LocalDate dateMenu, int validationProposition, Team team) {
+ public Menu(String libelle, LocalDate dateMenu, Team team) {
this.libelle = libelle;
this.dateMenu = dateMenu;
- this.validationProposition=validationProposition;
+ //this.validationProposition=validationProposition;
this.team = team;
}
@@ -52,13 +52,13 @@ public class Menu {
this.dateMenu = dateMenu;
}
- public int getValidationProposition() {
- return validationProposition;
- }
+ // public int getValidationProposition() {
+ // return validationProposition;
+ //}
- public void setValidationProposition(int validationProposition) {
- this.validationProposition = validationProposition;
- }
+ //public void setValidationProposition(int validationProposition) {
+ // this.validationProposition = validationProposition;
+ // }
public Team getTeam() {
return team;
@@ -74,7 +74,6 @@ public class Menu {
"id=" + id +
", libelle='" + libelle + '\'' +
", dateMenu=" + dateMenu +
- ", validationProposition=" + validationProposition +
", team=" + team +
'}';
}
diff --git a/src/main/java/fr/organizee/repository/MenuRepository.java b/src/main/java/fr/organizee/repository/MenuRepository.java
index 1f22d7d..7c5d0cb 100644
--- a/src/main/java/fr/organizee/repository/MenuRepository.java
+++ b/src/main/java/fr/organizee/repository/MenuRepository.java
@@ -14,4 +14,5 @@ public interface MenuRepository extends JpaRepository {
@Query(value = "select * from menu where team_id = :team_id", nativeQuery = true)
List FindMenusByTeam(@Param("team_id") int team_id);
+
}
From 623c744ee9b50107f2224dd35adb1020cb759b16 Mon Sep 17 00:00:00 2001
From: Blandine Bajard <83599148+BlandineBajard@users.noreply.github.com>
Date: Fri, 18 Feb 2022 17:19:15 +0100
Subject: [PATCH 21/21] menus de la semaine
---
.../fr/organizee/controller/MembreController.java | 2 +-
.../fr/organizee/controller/MenuController.java | 8 ++++++--
src/main/java/fr/organizee/model/Menu.java | 14 ++++++++++++--
3 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/src/main/java/fr/organizee/controller/MembreController.java b/src/main/java/fr/organizee/controller/MembreController.java
index 93df3d8..6fd0b3c 100644
--- a/src/main/java/fr/organizee/controller/MembreController.java
+++ b/src/main/java/fr/organizee/controller/MembreController.java
@@ -45,7 +45,7 @@ public class MembreController {
// Récupère tout les membres de la base
@GetMapping(value = "/all")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
public ResponseEntity> getAll(){
List liste = null;
try
diff --git a/src/main/java/fr/organizee/controller/MenuController.java b/src/main/java/fr/organizee/controller/MenuController.java
index 0ea98e3..4b18a32 100644
--- a/src/main/java/fr/organizee/controller/MenuController.java
+++ b/src/main/java/fr/organizee/controller/MenuController.java
@@ -67,11 +67,15 @@ public class MenuController {
}
//Mise a jour d'un menu par son ID
- @PutMapping("/update/{id}")
+ @PutMapping("/update/{team_id}/{id}")
//@PreAuthorize("hasRole('ROLE_PARENT')")
- public ResponseEntity> updateMenu(@RequestBody Menu menu, @PathVariable Integer id) throws Exception {
+ public ResponseEntity> updateMenu(@RequestBody Menu menu, @PathVariable Integer team_id, @PathVariable Integer id) throws Exception {
Menu resultMenu = null;
try {
+ menu.setId(menuRepository.findById(id).get().getId());
+ Team team=new Team();
+ team.setId(team_id);
+ menu.setTeam(team);
resultMenu = menuRepository.save(menu);
} catch (Exception e) {
diff --git a/src/main/java/fr/organizee/model/Menu.java b/src/main/java/fr/organizee/model/Menu.java
index 22a1ab1..458e80c 100644
--- a/src/main/java/fr/organizee/model/Menu.java
+++ b/src/main/java/fr/organizee/model/Menu.java
@@ -12,6 +12,7 @@ public class Menu {
private int id;
private String libelle;
private LocalDate dateMenu;
+ private String repas;
// private int validationProposition;
@ManyToOne
@JoinColumn(name="TEAM_ID")
@@ -21,10 +22,10 @@ public class Menu {
public Menu() {
}
- public Menu(String libelle, LocalDate dateMenu, Team team) {
+ public Menu(String libelle, LocalDate dateMenu,String repas, Team team) {
this.libelle = libelle;
this.dateMenu = dateMenu;
- //this.validationProposition=validationProposition;
+ this.repas= repas;
this.team = team;
}
@@ -52,6 +53,14 @@ public class Menu {
this.dateMenu = dateMenu;
}
+ public String getRepas() {
+ return repas;
+ }
+
+ public void setRepas(String repas) {
+ this.repas = repas;
+ }
+
// public int getValidationProposition() {
// return validationProposition;
//}
@@ -75,6 +84,7 @@ public class Menu {
", libelle='" + libelle + '\'' +
", dateMenu=" + dateMenu +
", team=" + team +
+ ", repas=" + repas +
'}';
}
}