diff --git a/.file.swp b/.file.swp
new file mode 100644
index 0000000..97eb5de
Binary files /dev/null and b/.file.swp differ
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/pom.xml b/pom.xml
index dbaf653..6704f63 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
@@ -38,7 +39,10 @@
org.springframework.boot
spring-boot-starter-web
-
+
+ org.springframework.boot
+ spring-boot-starter-mail
+
mysql
mysql-connector-java
diff --git a/src/main/java/fr/organizee/controller/ContactController.java b/src/main/java/fr/organizee/controller/ContactController.java
index ef79042..4f2ac45 100644
--- a/src/main/java/fr/organizee/controller/ContactController.java
+++ b/src/main/java/fr/organizee/controller/ContactController.java
@@ -20,8 +20,10 @@ public class ContactController {
@Autowired
private ContactRepository contactRepo;
+
+ //Récupère les infos d'un contact 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 contact = null;
try
@@ -34,8 +36,9 @@ public class ContactController {
return ResponseEntity.status(HttpStatus.OK).body(contact);
}
+ //Récupère les infos d'un contact par la team ID
@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
@@ -44,12 +47,12 @@ public class ContactController {
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
}
-
return ResponseEntity.status(HttpStatus.OK).body(contacts);
}
+ //Ajoute un nouveau contact
@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 {
@@ -61,8 +64,9 @@ public class ContactController {
return ResponseEntity.status(HttpStatus.CREATED).body(resultContact);
}
+ //Mise à jour du contact par son ID
@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 {
@@ -75,8 +79,9 @@ public class ContactController {
return ResponseEntity.status(HttpStatus.OK).body(resultContact);
}
+ //Efface le contact par on ID
@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/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/controller/MailController.java b/src/main/java/fr/organizee/controller/MailController.java
new file mode 100644
index 0000000..5df737e
--- /dev/null
+++ b/src/main/java/fr/organizee/controller/MailController.java
@@ -0,0 +1,41 @@
+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.*;
+
+import javax.mail.MessagingException;
+
+@RestController
+@CrossOrigin("*")
+@RequestMapping("/sendmail")
+public class MailController {
+ SendMailService service;
+
+ public MailController(SendMailService service) {
+ 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);
+ return new ResponseEntity<>("Attachment mail sent successfully", HttpStatus.OK);
+ }
+}
\ No newline at end of file
diff --git a/src/main/java/fr/organizee/controller/MembreController.java b/src/main/java/fr/organizee/controller/MembreController.java
index 93df3d8..e611f83 100644
--- a/src/main/java/fr/organizee/controller/MembreController.java
+++ b/src/main/java/fr/organizee/controller/MembreController.java
@@ -4,7 +4,10 @@ import fr.organizee.dto.JsonWebToken;
import fr.organizee.dto.MembreDto;
import fr.organizee.exception.ExistingUsernameException;
import fr.organizee.exception.InvalidCredentialsException;
+import fr.organizee.exception.MembreNotFoundException;
import fr.organizee.model.Membre;
+import fr.organizee.model.Menu;
+import fr.organizee.model.Team;
import fr.organizee.repository.MembreRepository;
import fr.organizee.service.MembreService;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,51 +22,202 @@ import java.util.List;
import java.util.Optional;
import java.util.stream.Collectors;
-/* toto */
+
@RestController
@CrossOrigin("*")
-@RequestMapping("/membres")
+@RequestMapping(value="/membres")
public class MembreController {
@Autowired
private MembreRepository membreRepo;
-
+
@Autowired
private MembreService membreService;
-
@Autowired
private BCryptPasswordEncoder passwordEncoder;
+ public MembreController() {}
+
@ResponseBody
public String home()
{
StringBuilder sb = new StringBuilder();
sb.append("Affichages des membres
");
- sb.append("- Liste des membres
");
+ sb.append("- Liste des membres
");
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")
- @PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
- public ResponseEntity> getAll(){
- List liste = null;
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ public ResponseEntity> getAllMembres(){
+ List listeMembres;
try
{
- liste = membreRepo.findAll();
+ listeMembres = membreRepo.findAll();
+ } catch (Exception e) {
+ MembreNotFoundException commandeNotFoundException = new MembreNotFoundException();
+ return ResponseEntity.status(HttpStatus.NOT_FOUND).body(commandeNotFoundException.getMessage());
+ }
+
+ return ResponseEntity.status(HttpStatus.OK).body(listeMembres);
+ }
+
+ /**
+ * Rechercher tous les membres admin
+ * @return
+ * http://localhost:8088/membres/admin/all
+ */
+
+ @GetMapping(value="/admin/all")
+ @PreAuthorize("hasRole('ROLE_PARENT')")
+ public List getAllAdminUsers() {
+ 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;
+ 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();
+ }
+ }
+
+ /**
+ * Rechercher un membre par l'Id de sa team
+ * @return
+ * http://localhost:8088/membres/1
+ */
+ @GetMapping(value = "team/{team_id}")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ public ResponseEntity> findByTeamId(@PathVariable int team_id) {
+ List membres = null;
+ try {
+ membres = membreRepo.FindMembresByTeam(team_id);
} catch (Exception e) {
return ResponseEntity.status(HttpStatus.NOT_FOUND).body(null);
}
-
- return ResponseEntity.status(HttpStatus.OK).body(liste);
+ return ResponseEntity.status(HttpStatus.OK).body(membres);
}
- @GetMapping("/admin/all")
- @PreAuthorize("hasRole('ROLE_PARENT')")
- public List getAllAdminUsers() {
- return membreService.findAllUsers().stream().map(appUser -> new MembreDto(appUser.getEmail(), appUser.getRoleList())).collect(Collectors.toList());
+ /**
+ * Inscription
+ * @return
+ * http://localhost:8088/membres/sign-up
+ */
+ @PostMapping(value="/sign-up")
+ public ResponseEntity signUp(@RequestBody Membre membre) {
+ try {
+ return ResponseEntity.ok(new JsonWebToken(membreService.signup(membre)));
+ } catch (ExistingUsernameException ex) {
+ return ResponseEntity.badRequest().build();
+ }
}
+
+ /**
+ * Ajout d'un membre
+ * @return
+ * http://localhost:8088/membres/add
+ */
+ @PostMapping(value="/add/{team_id}", produces="application/json", consumes= "application/json")
+ //@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
+ public ResponseEntity> addMembre(@RequestBody Membre membre, @PathVariable Integer team_id){
+ Membre resultMembre = null;
+ try{
+ Team team = new Team();
+ team.setId(team_id);
+ membre.setTeam(team);
+ //resultMembre = membreRepo.saveAndFlush(membre);
+ return ResponseEntity.ok(new JsonWebToken(membreService.signup(membre)));
+ } catch (Exception e) {
+ return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body(e.getMessage());
+ }
+
+ //return ResponseEntity.status(HttpStatus.CREATED).body(resultMembre);
+ }
+
+ /**
+ * 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 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 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
@GetMapping("/forgot-password")
//@PreAuthorize("hasRole('ROLE_PARENT') or hasRole('ROLE_ENFANT')")
@@ -102,100 +256,4 @@ public class MembreController {
return ResponseEntity.status(HttpStatus.OK).body(resultMembre);
}
-
-
- //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 = 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 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 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 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);
-// }
}
diff --git a/src/main/java/fr/organizee/controller/MenuController.java b/src/main/java/fr/organizee/controller/MenuController.java
index b7db085..4b18a32 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());
@@ -63,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/controller/TacheController.java b/src/main/java/fr/organizee/controller/TacheController.java
index 681d760..58e5ccc 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());
@@ -73,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) {
diff --git a/src/main/java/fr/organizee/exception/MembreNotFoundAdvice.java b/src/main/java/fr/organizee/exception/MembreNotFoundAdvice.java
new file mode 100644
index 0000000..f50edba
--- /dev/null
+++ b/src/main/java/fr/organizee/exception/MembreNotFoundAdvice.java
@@ -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();}
+}
diff --git a/src/main/java/fr/organizee/exception/MembreNotFoundException.java b/src/main/java/fr/organizee/exception/MembreNotFoundException.java
new file mode 100644
index 0000000..fda48c0
--- /dev/null
+++ b/src/main/java/fr/organizee/exception/MembreNotFoundException.java
@@ -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");}
+}
diff --git a/src/main/java/fr/organizee/model/Contact.java b/src/main/java/fr/organizee/model/Contact.java
index 2c5ffb2..25b2d2d 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.*;
@@ -10,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;
@@ -17,14 +19,15 @@ public class Contact {
private String adresse;
private LocalDate dateNaissance;
@ManyToOne
- @JoinColumn(name="TEAM_ID")
- @JsonIgnoreProperties("contact")
+ @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;
@@ -42,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;
}
@@ -93,6 +104,7 @@ public class Contact {
public Team getTeam() {
return team;
}
+
public void setTeam(Team team) {
this.team = team;
}
@@ -101,6 +113,7 @@ public class Contact {
public String toString() {
return "Contact{" +
"id=" + id +
+ ", couleur='" + couleur + '\'' +
", nom='" + nom + '\'' +
", prenom='" + prenom + '\'' +
", telephone='" + telephone + '\'' +
diff --git a/src/main/java/fr/organizee/model/Evenement.java b/src/main/java/fr/organizee/model/Evenement.java
index 15a355f..f2f83fd 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.*;
@@ -10,28 +11,28 @@ 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;
- @ManyToOne(cascade = CascadeType.MERGE)
+ private String text;
+ @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() {
}
- 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;
}
@@ -44,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() {
@@ -68,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() {
@@ -96,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/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/model/Menu.java b/src/main/java/fr/organizee/model/Menu.java
index e11cba4..4be974c 100644
--- a/src/main/java/fr/organizee/model/Menu.java
+++ b/src/main/java/fr/organizee/model/Menu.java
@@ -10,21 +10,21 @@ public class Menu {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
- private String libelle;
private LocalDate dateMenu;
- private int validationProposition;
+ private String repasMidi;
+ private String repasSoir;
@ManyToOne
@JoinColumn(name="TEAM_ID")
- @JsonIgnoreProperties("menu")
+ @JsonIgnoreProperties({"menu","membre"})
private Team team;
public Menu() {
}
- public Menu(String libelle, LocalDate dateMenu, int validationProposition, Team team) {
- this.libelle = libelle;
+ public Menu(LocalDate dateMenu,String repasMidi, String repasSoir, Team team) {
this.dateMenu = dateMenu;
- this.validationProposition=validationProposition;
+ this.repasMidi= repasMidi;
+ this.repasSoir= repasSoir;
this.team = team;
}
@@ -36,14 +36,6 @@ public class Menu {
this.id = id;
}
- public String getLibelle() {
- return libelle;
- }
-
- public void setLibelle(String libelle) {
- this.libelle = libelle;
- }
-
public LocalDate getDateMenu() {
return dateMenu;
}
@@ -52,12 +44,20 @@ public class Menu {
this.dateMenu = dateMenu;
}
- public int getValidationProposition() {
- return validationProposition;
+ public String getRepasMidi() {
+ return repasMidi;
}
- public void setValidationProposition(int validationProposition) {
- this.validationProposition = validationProposition;
+ public void setRepasMidi(String repasMidi) {
+ this.repasMidi = repasMidi;
+ }
+
+ public String getRepasSoir() {
+ return repasSoir;
+ }
+
+ public void setRepasSoir(String repasSoir) {
+ this.repasSoir = repasSoir;
}
public Team getTeam() {
@@ -68,13 +68,14 @@ public class Menu {
this.team = team;
}
+
@Override
public String toString() {
return "Menu{" +
"id=" + id +
- ", libelle='" + libelle + '\'' +
", dateMenu=" + dateMenu +
- ", validationProposition=" + validationProposition +
+ ", repasMidi='" + repasMidi + '\'' +
+ ", repasSoir='" + repasSoir + '\'' +
", team=" + team +
'}';
}
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