From 6be5ebbb5117d5fd8f50a868aa49c22e4db05348 Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 11:29:01 +0100 Subject: [PATCH 01/12] initiate new branch and adding prof controller --- WebService/pom.xml | 19 ++++++++++++++----- .../ApiREST/WebService/ProfController.java | 10 ++++++++++ 2 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/ProfController.java diff --git a/WebService/pom.xml b/WebService/pom.xml index 9f379f5..67a2f9f 100644 --- a/WebService/pom.xml +++ b/WebService/pom.xml @@ -1,17 +1,17 @@ + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot spring-boot-starter-parent - 3.2.3 + 3.2.2 - SAE.ApiREST + com.example WebService 0.0.1-SNAPSHOT - WebService + tp2 Demo project for Spring Boot 17 @@ -27,6 +27,15 @@ spring-boot-starter-test test + + + org.springframework.boot + spring-boot-starter-web + + + jakarta.persistence + jakarta.persistence-api + @@ -38,4 +47,4 @@ - + \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/ProfController.java b/WebService/src/main/java/SAE/ApiREST/WebService/ProfController.java new file mode 100644 index 0000000..5cdb177 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/ProfController.java @@ -0,0 +1,10 @@ +package SAE.ApiREST.WebService; + +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; +@Controller +@RequestMapping("/ProfWebService") +public class ProfController { + + +} From f99c5862204a527754412fed3d8a4232ee3849e0 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 26 Feb 2024 11:40:12 +0100 Subject: [PATCH 02/12] ajout Model Article --- WebService/pom.xml | 82 +++++++++++-------- .../WebService/CollectionControlleur.java | 37 +++++++++ .../SAE/ApiREST/WebService/Data/Article.java | 2 + .../ApiREST/WebService/Data/Collection.java | 44 ++++++++++ 4 files changed, 129 insertions(+), 36 deletions(-) create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/CollectionControlleur.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/Data/Article.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/Data/Collection.java diff --git a/WebService/pom.xml b/WebService/pom.xml index 9f379f5..0ed24c0 100644 --- a/WebService/pom.xml +++ b/WebService/pom.xml @@ -1,41 +1,51 @@ +import org.springframework.web.bind.annotation.*; - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.2.3 - - - SAE.ApiREST - WebService - 0.0.1-SNAPSHOT - WebService - Demo project for Spring Boot - - 17 - - - - org.springframework.boot - spring-boot-starter - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.2.2 + + + com.example + WebService + 0.0.1-SNAPSHOT + tp2 + Demo project for Spring Boot + + 17 + + + + org.springframework.boot + spring-boot-starter + - - org.springframework.boot - spring-boot-starter-test - test - - + + org.springframework.boot + spring-boot-starter-test + test + - - - - org.springframework.boot - spring-boot-maven-plugin - - - + + org.springframework.boot + spring-boot-starter-web + + + jakarta.persistence + jakarta.persistence-api + + - + + + + org.springframework.boot + spring-boot-maven-plugin + + + + + \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/CollectionControlleur.java b/WebService/src/main/java/SAE/ApiREST/WebService/CollectionControlleur.java new file mode 100644 index 0000000..2e17cad --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/CollectionControlleur.java @@ -0,0 +1,37 @@ +@org.springframework.stereotype.Controller + +@Controller +@RequestMapping("/CollectionWebService") +public class CollectionController { + private ArrayList books = new ArrayList<>(); + + public Controller() { + books.add(new Book("titre1", "moi")); + books.add(new Book("titre2", "toi")); + books.add(new Book("titre3", "eux")); + books.add(new Book("titre4", "tout ceux qui le veule")); + } + + @GetMapping(value = "/getAllBooks", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List getAllBooks() { + return books; + } + + @GetMapping(value = "/getBookById/{isbn}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody Book getBookById(@PathVariable(value = "isbn") int isbn) { + for(Book book : books) { + if(book.isbn == isbn) { + return book; + } + } + throw new BookException("Undefined id"); + } + + @PostMapping("/logBooks") + public @ResponseBody void logBooks(@RequestParam("title") String title, @RequestParam("author") String author) { + books.add(new Book(title, author)); + for(Book book : books) { + System.out.println(book); + } + } +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Data/Article.java b/WebService/src/main/java/SAE/ApiREST/WebService/Data/Article.java new file mode 100644 index 0000000..58a2c90 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/Data/Article.java @@ -0,0 +1,2 @@ +@Entity +public class Article \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Data/Collection.java b/WebService/src/main/java/SAE/ApiREST/WebService/Data/Collection.java new file mode 100644 index 0000000..3f85887 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/Data/Collection.java @@ -0,0 +1,44 @@ +package SAE.ApiREST.WebService.Data; +@Entity +public class Collection{ + @Id + @GeneratedValue(strategy=GenerationType.AUTO) + private final long isbn + @Column(name = "articles") + private ArrayList
articles + @Column(name = "name") + private String name + + public Collection(String name){ + this.name = name; + this.articles = new ArrayList
(); + } + + public List
getAllArticles(){ + return articles; + } + + public void addArticle(Article article){ + if(!this.articles.contains(article)){ + this.articles.add(article); + } + } + public void addArticles(List
articles){ + for(Article article : articles){ + addArticle(article); + } + } + public void removeArticle(Article article){ + this.articles.remove(article); + } + public void removeArticles(List
articles){ + this.articles.removeAll(articles); + } + + public String getName(){ + return name; + } + public void setName(String name){ + this.name = name; + } +} \ No newline at end of file From 087421b2dae36d3fcb81c06ea8bff3ec2033b679 Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 15:47:56 +0100 Subject: [PATCH 03/12] adding model, service, controller Teacher --- .../Controller/TeacherController.java | 20 ++++++ .../SAE/ApiREST/WebService/Model/Teacher.java | 59 +++++++++++++++++ .../ApiREST/WebService/ProfController.java | 10 --- .../WebService/Service/ITeacherService.java | 21 ++++++ .../Service/TeacherServiceStub.java | 65 +++++++++++++++++++ 5 files changed, 165 insertions(+), 10 deletions(-) create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/Model/Teacher.java delete mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/ProfController.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/Service/ITeacherService.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/Service/TeacherServiceStub.java diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java b/WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java new file mode 100644 index 0000000..c125fbe --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java @@ -0,0 +1,20 @@ +package SAE.ApiREST.WebService.Controller; + +import SAE.ApiREST.WebService.Model.Teacher; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +@Controller +@RequestMapping("/ProfWebService") +public class TeacherController { + + private Teacher profC; + + + public TeacherController() { + this.profC = new Teacher(1, LocalDate.parse("12-01-2023", DateTimeFormatter.ISO_DATE), "aline.alipres@gmail.com", "MsGarconManque"); + } +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Model/Teacher.java b/WebService/src/main/java/SAE/ApiREST/WebService/Model/Teacher.java new file mode 100644 index 0000000..5b8653b --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/Model/Teacher.java @@ -0,0 +1,59 @@ +package SAE.ApiREST.WebService.Model; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.Date; + +@Entity + +public class Teacher { + @Id + private int id; + private LocalDate date; + private String mail; + private String username; + + public Teacher(int id, LocalDate date, String mail, String msGarconManque) { + } + + public Teacher(int id, String date, String mail, String username) { + this.id = id; + this.date = LocalDate.parse(date, DateTimeFormatter.ISO_DATE); + this.mail = mail; + this.username = username; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public LocalDate getDate() { + return date; + } + + public void setDate(LocalDate date) { + this.date = date; + } + + public String getMail() { + return mail; + } + + public void setMail(String mail) { + this.mail = mail; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/ProfController.java b/WebService/src/main/java/SAE/ApiREST/WebService/ProfController.java deleted file mode 100644 index 5cdb177..0000000 --- a/WebService/src/main/java/SAE/ApiREST/WebService/ProfController.java +++ /dev/null @@ -1,10 +0,0 @@ -package SAE.ApiREST.WebService; - -import org.springframework.stereotype.Controller; -import org.springframework.web.bind.annotation.*; -@Controller -@RequestMapping("/ProfWebService") -public class ProfController { - - -} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Service/ITeacherService.java b/WebService/src/main/java/SAE/ApiREST/WebService/Service/ITeacherService.java new file mode 100644 index 0000000..549ce1a --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/Service/ITeacherService.java @@ -0,0 +1,21 @@ +package SAE.ApiREST.WebService.Service; + +import SAE.ApiREST.WebService.Model.Teacher; + +import java.time.LocalDate; +import java.util.List; + +public interface ITeacherService { + + //Todo() by id, by mail, by username, allProf, by date (order), suppression, ajout, FAIRE DES REGIONS! + public List getAllTeacher(); + + Teacher getTeacherById(int id); + + public Teacher getTeacherByUsername(String username); + public Teacher getTeacherByMail(String mail); + public Teacher getTeacherByDate(LocalDate date); + public List addTeacher(int id, LocalDate date, String mail, String username); + + public List deleteTeacher(int id); +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Service/TeacherServiceStub.java b/WebService/src/main/java/SAE/ApiREST/WebService/Service/TeacherServiceStub.java new file mode 100644 index 0000000..6aceee6 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/Service/TeacherServiceStub.java @@ -0,0 +1,65 @@ +package SAE.ApiREST.WebService.Service; + +import SAE.ApiREST.WebService.Model.Teacher; +import org.springframework.stereotype.Service; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; + +import java.util.ArrayList; +import java.util.List; + +@Service +public class TeacherServiceStub implements ITeacherService { + + //todo() recevoir collections, ajouter collections, supprimer collections + @Override + public List getAllTeacher() { + List allTeacher = new ArrayList(); + + allTeacher.add(new Teacher(1, LocalDate.parse("12-01-2023", DateTimeFormatter.ISO_DATE), "aline.alipres@gmail.com", "MsGarconManque")); + allTeacher.add(new Teacher(2, LocalDate.parse("20-08-2023", DateTimeFormatter.ISO_DATE), "Viviane.Delvecchio@gmail.com", "MmeMath")); + + return allTeacher; + } + + + + @Override + public Teacher getTeacherById(int id) { + return new Teacher(id, "10-01-2021", "exemple.gmail.com", "testest"); + } + + @Override + public Teacher getTeacherByUsername(String username) { + return new Teacher(12, "30-08-2020", "dadadou@gmail.com", username); + } + + @Override + public Teacher getTeacherByMail(String mail) { + return new Teacher(20, "24-12-2021", mail, "tructruc"); + } + + @Override + public Teacher getTeacherByDate(LocalDate date) { + return new Teacher(5, date, "doudouda@gmail.com", "username"); + } + + @Override + public List addTeacher(int id, LocalDate date, String mail, String username) { + List lteach = new ArrayList(); + lteach.add(new Teacher(id,date,mail,username)); + return lteach; + } + + @Override + public List deleteTeacher(int id) { + List allTeacher = new ArrayList(); + + allTeacher.add(new Teacher(1, LocalDate.parse("12-01-2023", DateTimeFormatter.ISO_DATE), "aline.alipres@gmail.com", "MsGarconManque")); + allTeacher.add(new Teacher(2, LocalDate.parse("20-08-2023", DateTimeFormatter.ISO_DATE), "Viviane.Delvecchio@gmail.com", "MmeMath")); + + allTeacher.remove(getTeacherById(id)); + return allTeacher; + } +} From a528b354be5883157ae39f1d933102c8132af4d0 Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 15:55:32 +0100 Subject: [PATCH 04/12] little modifications in controller Teacher --- .../WebService/Controller/TeacherController.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java b/WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java index c125fbe..7c60452 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java @@ -1,6 +1,8 @@ package SAE.ApiREST.WebService.Controller; import SAE.ApiREST.WebService.Model.Teacher; +import SAE.ApiREST.WebService.Service.ITeacherService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; @@ -10,11 +12,11 @@ import java.time.format.DateTimeFormatter; @Controller @RequestMapping("/ProfWebService") public class TeacherController { + @Autowired + private ITeacherService iTeacherServ; - private Teacher profC; - - public TeacherController() { - this.profC = new Teacher(1, LocalDate.parse("12-01-2023", DateTimeFormatter.ISO_DATE), "aline.alipres@gmail.com", "MsGarconManque"); + public TeacherController(ITeacherService iserv) { + this.iTeacherServ = iserv; } } From c23c0aa7c0b83eb4e27fa340a328e7e3ed2cae51 Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 26 Feb 2024 15:59:17 +0100 Subject: [PATCH 05/12] Ajout service Collection --- .../WebService/CollectionControlleur.java | 37 ------ .../SAE/ApiREST/WebService/Data/Article.java | 2 - .../controller/CollectionControlleur.java | 107 ++++++++++++++++++ .../{Data => model}/Collection.java | 20 +++- .../service/ICollectionService.java | 15 +++ .../service/StubCollectionService.java | 87 ++++++++++++++ 6 files changed, 228 insertions(+), 40 deletions(-) delete mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/CollectionControlleur.java delete mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/Data/Article.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java rename WebService/src/main/java/SAE/ApiREST/WebService/{Data => model}/Collection.java (72%) create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/CollectionControlleur.java b/WebService/src/main/java/SAE/ApiREST/WebService/CollectionControlleur.java deleted file mode 100644 index 2e17cad..0000000 --- a/WebService/src/main/java/SAE/ApiREST/WebService/CollectionControlleur.java +++ /dev/null @@ -1,37 +0,0 @@ -@org.springframework.stereotype.Controller - -@Controller -@RequestMapping("/CollectionWebService") -public class CollectionController { - private ArrayList books = new ArrayList<>(); - - public Controller() { - books.add(new Book("titre1", "moi")); - books.add(new Book("titre2", "toi")); - books.add(new Book("titre3", "eux")); - books.add(new Book("titre4", "tout ceux qui le veule")); - } - - @GetMapping(value = "/getAllBooks", produces = MediaType.APPLICATION_JSON_VALUE) - public @ResponseBody List getAllBooks() { - return books; - } - - @GetMapping(value = "/getBookById/{isbn}", produces = MediaType.APPLICATION_JSON_VALUE) - public @ResponseBody Book getBookById(@PathVariable(value = "isbn") int isbn) { - for(Book book : books) { - if(book.isbn == isbn) { - return book; - } - } - throw new BookException("Undefined id"); - } - - @PostMapping("/logBooks") - public @ResponseBody void logBooks(@RequestParam("title") String title, @RequestParam("author") String author) { - books.add(new Book(title, author)); - for(Book book : books) { - System.out.println(book); - } - } -} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Data/Article.java b/WebService/src/main/java/SAE/ApiREST/WebService/Data/Article.java deleted file mode 100644 index 58a2c90..0000000 --- a/WebService/src/main/java/SAE/ApiREST/WebService/Data/Article.java +++ /dev/null @@ -1,2 +0,0 @@ -@Entity -public class Article \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java b/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java new file mode 100644 index 0000000..6060b3f --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java @@ -0,0 +1,107 @@ +@org.springframework.stereotype.Controller + +@Controller +@RequestMapping("/CollectionWebService") +public class CollectionController { + private ArrayList collections = new ArrayList<>(); + + public Controller() { + + } + + @GetMapping(value = "/getAllCollection", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List getAllCollection() { + return collections; + } + + @GetMapping(value = "/getCollectionById/{isbn}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody Book getCollectionById(@PathVariable(value = "isbn") int isbn) { + for(Book book : books) { + if(book.isbn == isbn) { + return book; + } + } + throw new BookException("Undefined id"); + } + + @PostMapping("/logBooks") + public @ResponseBody void logBooks(@RequestParam("title") String title, @RequestParam("author") String author) { + books.add(new Book(title, author)); + for(Book book : books) { + System.out.println(book); + } + } + // region Collection + + // region GET + @GetMapping(value = "/getCollectionById", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody Collection getCollectionById(long isbn){ + for(Collection collection : this.collections){ + if(collection.getId === isbn) { + return collection; + } + } + return null; + } + @GetMapping(value = "/getAllCollectionsByName", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List getAllCollectionsByName(String name){ + private ArrayList repCollections = new ArrayList(); + for(Collection collection : this.collections){ + if(collection.getName === name) { + repCollections.add(collection); + } + } + return repCollections; + } + // endregion + + // region DELETE + @DeleteMaping(value = "/deleteColletionById") + public @ResponseBody void deleteColletionById(long isbn){ + Collection collection = getCollectionById(isbn); + this.collections.remove(collection); + } + + public @ResponseBody void deleteColletionByName(String name){ + ArrayList collectionsByName = getAllCollectionsByName(name); + this.collections.remove(collectionsByName[0]); + } + public @ResponseBody void deleteAllColletionByName(String name){ + ArrayList collectionsByName = getAllCollectionsByName(name); + this.collections.removeAll(collectionsByName); + } + // endregion + + // region PUT + public @ResponseBody void addCollection(Collection collection){ + this.collections.add(collection); + } + public @ResponseBody void addCollections(List collections){ + this.collections.addAll(collections); + } + // endregion + + // region POST + public @ResponseBody void modifyCollectionName(Collection collection, String name){ + collection.setName(name); + } + public @ResponseBody void modifyCollectionNameById(long isbn, String name){ + Collection collection = getCollectionById(isbn); + modifyCollectionName(collection,name); + } + // endregion + // endregion + + // region Article + @GetMapping(value = "/getAllArticles", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getAllArticles(Collection collection){ + return collection.getAllArticles; + } + public @ResponseBody void addArticle(Collection collection, Article article){ + collection.addArticle + } + public @ResponseBody void deleteArticle(Collection collection, Article article){ + collection.deleteArticle(article); + } + // endregion +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Data/Collection.java b/WebService/src/main/java/SAE/ApiREST/WebService/model/Collection.java similarity index 72% rename from WebService/src/main/java/SAE/ApiREST/WebService/Data/Collection.java rename to WebService/src/main/java/SAE/ApiREST/WebService/model/Collection.java index 3f85887..bf1f6dc 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/Data/Collection.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/model/Collection.java @@ -8,16 +8,27 @@ public class Collection{ private ArrayList
articles @Column(name = "name") private String name + @Column(name = "teacher") + private Teacher teacher - public Collection(String name){ + public Collection(String name, Teacher teacher){ this.name = name; + this.teacher = teacher; this.articles = new ArrayList
(); } + // region Article + public long getId(){ + return isbn; + } + // endregion + + // region Article public List
getAllArticles(){ return articles; } + // region addArticle public void addArticle(Article article){ if(!this.articles.contains(article)){ this.articles.add(article); @@ -28,17 +39,24 @@ public class Collection{ addArticle(article); } } + // endregion + + // region removeArticle public void removeArticle(Article article){ this.articles.remove(article); } public void removeArticles(List
articles){ this.articles.removeAll(articles); } + // endregion + // endregion + // region name public String getName(){ return name; } public void setName(String name){ this.name = name; } + // endregion } \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java new file mode 100644 index 0000000..6b82362 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java @@ -0,0 +1,15 @@ +public interface ICollectionService{ + public List getAllCollections(); + public Collection getCollectionById(long isbn); + public List getAllCollectionsByName(String name); + public void deleteColletionById(long isbn); + public void deleteColletionByName(String name); + public void deleteAllColletionByName(String name); + public void addCollection(Collection collection); + public void addCollections(List collection); + public void modifyCollectionName(Collection collection, String name); + public void modifyCollectionNameById(long isbn, String name); + public List
getAllArticles(Collection collection); + public void addArticle(Collection collection, Article article); + public void deleteArticle(Collection collection, Article article); +} \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java new file mode 100644 index 0000000..a335f5f --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java @@ -0,0 +1,87 @@ +package SAE.ApiREST.WebService.service; + +import java.sql.Date; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.stereotype.Service; + +import SAE.ApiREST.WebService.model.Article; + +@Service +public class CollectionService implements ICollectionService { + private ArrayList collections; + public List getAllCollections() { + return this.collections; + } + + // region Collection + + // region GET + public Collection getCollectionById(long isbn){ + for(Collection collection : this.collections){ + if(collection.getId === isbn) { + return collection; + } + } + return null; + } + public List getAllCollectionsByName(String name){ + private ArrayList repCollections = new ArrayList(); + for(Collection collection : this.collections){ + if(collection.getName === name) { + repCollections.add(collection); + } + } + return repCollections; + } + // endregion + + // region DELETE + public void deleteColletionById(long isbn){ + Collection collection = getCollectionById(isbn); + this.collections.remove(collection); + } + + public void deleteColletionByName(String name){ + ArrayList collectionsByName = getAllCollectionsByName(name); + this.collections.remove(collectionsByName[0]); + } + public void deleteAllColletionByName(String name){ + ArrayList collectionsByName = getAllCollectionsByName(name); + this.collections.removeAll(collectionsByName); + } + // endregion + + // region PUT + public void addCollection(Collection collection){ + this.collections.add(collection); + } + public void addCollections(List collections){ + this.collections.addAll(collections); + } + // endregion + + // region POST + public void modifyCollectionName(Collection collection, String name){ + collection.setName(name); + } + public void modifyCollectionNameById(long isbn, String name){ + Collection collection = getCollectionById(isbn); + modifyCollectionName(collection,name); + } + // endregion + // endregion + + // region Article + public List
getAllArticles(Collection collection){ + return collection.getAllArticles; + } + public void addArticle(Collection collection, Article article){ + collection.addArticle + } + public void deleteArticle(Collection collection, Article article){ + collection.deleteArticle(article); + } + // endregion +} \ No newline at end of file From 8af44d145d44ab9c3e2b3bd6d0169c93e17c0a9c Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 16:19:57 +0100 Subject: [PATCH 06/12] adaptation to my work --- .../WebService/controller/CollectionControlleur.java | 2 ++ .../{Controller => controller}/TeacherController.java | 8 ++------ .../SAE/ApiREST/WebService/{Model => model}/Teacher.java | 2 +- .../ApiREST/WebService/service/ICollectionService.java | 5 +++++ .../WebService/{Service => service}/ITeacherService.java | 6 +++--- .../ApiREST/WebService/service/StubCollectionService.java | 3 --- .../{Service => service}/TeacherServiceStub.java | 8 ++++---- 7 files changed, 17 insertions(+), 17 deletions(-) rename WebService/src/main/java/SAE/ApiREST/WebService/{Controller => controller}/TeacherController.java (65%) rename WebService/src/main/java/SAE/ApiREST/WebService/{Model => model}/Teacher.java (96%) rename WebService/src/main/java/SAE/ApiREST/WebService/{Service => service}/ITeacherService.java (73%) rename WebService/src/main/java/SAE/ApiREST/WebService/{Service => service}/TeacherServiceStub.java (89%) diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java b/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java index 6060b3f..d0a6f3d 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java @@ -1,3 +1,5 @@ +package SAE.ApiREST.WebService.controller; + @org.springframework.stereotype.Controller @Controller diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java b/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java similarity index 65% rename from WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java rename to WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java index 7c60452..0c42fb5 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/Controller/TeacherController.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java @@ -1,14 +1,10 @@ -package SAE.ApiREST.WebService.Controller; +package SAE.ApiREST.WebService.controller; -import SAE.ApiREST.WebService.Model.Teacher; -import SAE.ApiREST.WebService.Service.ITeacherService; +import SAE.ApiREST.WebService.service.ITeacherService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; -import java.time.LocalDate; -import java.time.format.DateTimeFormatter; - @Controller @RequestMapping("/ProfWebService") public class TeacherController { diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Model/Teacher.java b/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java similarity index 96% rename from WebService/src/main/java/SAE/ApiREST/WebService/Model/Teacher.java rename to WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java index 5b8653b..404b0f6 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/Model/Teacher.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java @@ -1,4 +1,4 @@ -package SAE.ApiREST.WebService.Model; +package SAE.ApiREST.WebService.model; import jakarta.persistence.Entity; import jakarta.persistence.Id; diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java index 6b82362..2310089 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java @@ -1,3 +1,8 @@ +package SAE.ApiREST.WebService.service; + +import java.util.Collection; +import java.util.List; + public interface ICollectionService{ public List getAllCollections(); public Collection getCollectionById(long isbn); diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Service/ITeacherService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java similarity index 73% rename from WebService/src/main/java/SAE/ApiREST/WebService/Service/ITeacherService.java rename to WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java index 549ce1a..182f3b6 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/Service/ITeacherService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java @@ -1,6 +1,6 @@ -package SAE.ApiREST.WebService.Service; +package SAE.ApiREST.WebService.service; -import SAE.ApiREST.WebService.Model.Teacher; +import SAE.ApiREST.WebService.model.Teacher; import java.time.LocalDate; import java.util.List; @@ -15,7 +15,7 @@ public interface ITeacherService { public Teacher getTeacherByUsername(String username); public Teacher getTeacherByMail(String mail); public Teacher getTeacherByDate(LocalDate date); - public List addTeacher(int id, LocalDate date, String mail, String username); + public List addTeacher(Teacher t); public List deleteTeacher(int id); } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java index a335f5f..cc90b58 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java @@ -1,13 +1,10 @@ package SAE.ApiREST.WebService.service; -import java.sql.Date; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Service; -import SAE.ApiREST.WebService.model.Article; - @Service public class CollectionService implements ICollectionService { private ArrayList collections; diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Service/TeacherServiceStub.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java similarity index 89% rename from WebService/src/main/java/SAE/ApiREST/WebService/Service/TeacherServiceStub.java rename to WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java index 6aceee6..ee0660d 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/Service/TeacherServiceStub.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java @@ -1,6 +1,6 @@ -package SAE.ApiREST.WebService.Service; +package SAE.ApiREST.WebService.service; -import SAE.ApiREST.WebService.Model.Teacher; +import SAE.ApiREST.WebService.model.Teacher; import org.springframework.stereotype.Service; import java.time.LocalDate; @@ -46,9 +46,9 @@ public class TeacherServiceStub implements ITeacherService { } @Override - public List addTeacher(int id, LocalDate date, String mail, String username) { + public List addTeacher(Teacher t) { List lteach = new ArrayList(); - lteach.add(new Teacher(id,date,mail,username)); + lteach.add(t); return lteach; } From 29abf4d5c956c6b755d6ba260758536af35f33e1 Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 17:04:01 +0100 Subject: [PATCH 07/12] adding Articles and modifying Collection files --- .../model/{Collection.java => Collect.java} | 24 +++++--- .../SAE/ApiREST/WebService/model/Teacher.java | 3 +- .../service/ICollectionService.java | 21 +++---- .../WebService/service/ITeacherService.java | 2 +- .../service/StubCollectionService.java | 57 ++++++++++--------- .../service/TeacherServiceStub.java | 10 ++-- 6 files changed, 66 insertions(+), 51 deletions(-) rename WebService/src/main/java/SAE/ApiREST/WebService/model/{Collection.java => Collect.java} (74%) diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/model/Collection.java b/WebService/src/main/java/SAE/ApiREST/WebService/model/Collect.java similarity index 74% rename from WebService/src/main/java/SAE/ApiREST/WebService/model/Collection.java rename to WebService/src/main/java/SAE/ApiREST/WebService/model/Collect.java index bf1f6dc..2c8e85e 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/model/Collection.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/model/Collect.java @@ -1,22 +1,30 @@ -package SAE.ApiREST.WebService.Data; +package SAE.ApiREST.WebService.model; +import jakarta.persistence.*; + +import java.util.ArrayList; +import java.util.List; + @Entity -public class Collection{ +public class Collect { @Id - @GeneratedValue(strategy=GenerationType.AUTO) - private final long isbn + @GeneratedValue(strategy= GenerationType.AUTO) + private final long isbn = 0; @Column(name = "articles") - private ArrayList
articles + private ArrayList
articles; @Column(name = "name") - private String name + private String name; @Column(name = "teacher") - private Teacher teacher + private Teacher teacher; - public Collection(String name, Teacher teacher){ + public Collect(String name, Teacher teacher){ this.name = name; this.teacher = teacher; this.articles = new ArrayList
(); } + public Collect() { + } + // region Article public long getId(){ return isbn; diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java b/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java index 404b0f6..44cb60c 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java @@ -15,7 +15,8 @@ public class Teacher { private String mail; private String username; - public Teacher(int id, LocalDate date, String mail, String msGarconManque) { + public Teacher() { + } public Teacher(int id, String date, String mail, String username) { diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java index 2310089..8e3cec6 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java @@ -1,20 +1,21 @@ package SAE.ApiREST.WebService.service; +import SAE.ApiREST.WebService.model.Collect; +import SAE.ApiREST.WebService.model.Article; -import java.util.Collection; import java.util.List; public interface ICollectionService{ - public List getAllCollections(); - public Collection getCollectionById(long isbn); - public List getAllCollectionsByName(String name); + public List getAllCollections(); + public Collect getCollectionById(long isbn); + public List getAllCollectionsByName(String name); public void deleteColletionById(long isbn); public void deleteColletionByName(String name); public void deleteAllColletionByName(String name); - public void addCollection(Collection collection); - public void addCollections(List collection); - public void modifyCollectionName(Collection collection, String name); + public void addCollection(Collect collection); + public void addCollections(List collection); + public void modifyCollectionName(Collect collection, String name); public void modifyCollectionNameById(long isbn, String name); - public List
getAllArticles(Collection collection); - public void addArticle(Collection collection, Article article); - public void deleteArticle(Collection collection, Article article); + public List
getAllArticles(Collect collection); + public void addArticle(Collect collection, Article article); + public void deleteArticle(Collect collection, Article article); } \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java index 182f3b6..31c9bd7 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java @@ -14,7 +14,7 @@ public interface ITeacherService { public Teacher getTeacherByUsername(String username); public Teacher getTeacherByMail(String mail); - public Teacher getTeacherByDate(LocalDate date); + public Teacher getTeacherByDate(String date); public List addTeacher(Teacher t); public List deleteTeacher(int id); diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java index cc90b58..60e8e1e 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/StubCollectionService.java @@ -1,32 +1,34 @@ package SAE.ApiREST.WebService.service; +import SAE.ApiREST.WebService.model.Collect; import java.util.ArrayList; import java.util.List; +import SAE.ApiREST.WebService.model.Article; import org.springframework.stereotype.Service; @Service -public class CollectionService implements ICollectionService { - private ArrayList collections; - public List getAllCollections() { +public class StubCollectionService implements ICollectionService { + private ArrayList collections; + public List getAllCollections() { return this.collections; } // region Collection // region GET - public Collection getCollectionById(long isbn){ - for(Collection collection : this.collections){ - if(collection.getId === isbn) { + public Collect getCollectionById(long isbn){ + for(Collect collection : this.collections){ + if(collection.getId() == isbn) { return collection; } } return null; } - public List getAllCollectionsByName(String name){ - private ArrayList repCollections = new ArrayList(); - for(Collection collection : this.collections){ - if(collection.getName === name) { + public List getAllCollectionsByName(String name){ + ArrayList repCollections = new ArrayList(); + for(Collect collection : this.collections){ + if(collection.getName() == name) { repCollections.add(collection); } } @@ -36,49 +38,52 @@ public class CollectionService implements ICollectionService { // region DELETE public void deleteColletionById(long isbn){ - Collection collection = getCollectionById(isbn); + Collect collection = getCollectionById(isbn); this.collections.remove(collection); } public void deleteColletionByName(String name){ - ArrayList collectionsByName = getAllCollectionsByName(name); - this.collections.remove(collectionsByName[0]); + List collectionsByName = getAllCollectionsByName(name); + this.collections.remove(collectionsByName.get(0)); } public void deleteAllColletionByName(String name){ - ArrayList collectionsByName = getAllCollectionsByName(name); + List collectionsByName = getAllCollectionsByName(name); this.collections.removeAll(collectionsByName); } + + @Override + public void addCollection(Collect collection) { + this.collections.add(collection); + } // endregion // region PUT - public void addCollection(Collection collection){ - this.collections.add(collection); - } - public void addCollections(List collections){ + public void addCollections(List collections){ this.collections.addAll(collections); } // endregion // region POST - public void modifyCollectionName(Collection collection, String name){ + public void modifyCollectionName(Collect collection, String name){ collection.setName(name); } public void modifyCollectionNameById(long isbn, String name){ - Collection collection = getCollectionById(isbn); + Collect collection = getCollectionById(isbn); modifyCollectionName(collection,name); } + // endregion // endregion // region Article - public List
getAllArticles(Collection collection){ - return collection.getAllArticles; + public List
getAllArticles(Collect collect){ + return collect.getAllArticles(); } - public void addArticle(Collection collection, Article article){ - collection.addArticle + public void addArticle(Collect collect, Article article){ + collect.addArticle(article); } - public void deleteArticle(Collection collection, Article article){ - collection.deleteArticle(article); + public void deleteArticle(Collect collect, Article article){ + collect.removeArticle(article); } // endregion } \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java index ee0660d..c5d58f3 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java @@ -17,8 +17,8 @@ public class TeacherServiceStub implements ITeacherService { public List getAllTeacher() { List allTeacher = new ArrayList(); - allTeacher.add(new Teacher(1, LocalDate.parse("12-01-2023", DateTimeFormatter.ISO_DATE), "aline.alipres@gmail.com", "MsGarconManque")); - allTeacher.add(new Teacher(2, LocalDate.parse("20-08-2023", DateTimeFormatter.ISO_DATE), "Viviane.Delvecchio@gmail.com", "MmeMath")); + allTeacher.add(new Teacher(1, "12-01-2023", "aline.alipres@gmail.com", "MsGarconManque")); + allTeacher.add(new Teacher(2, "20-08-2023", "Viviane.Delvecchio@gmail.com", "MmeMath")); return allTeacher; } @@ -41,7 +41,7 @@ public class TeacherServiceStub implements ITeacherService { } @Override - public Teacher getTeacherByDate(LocalDate date) { + public Teacher getTeacherByDate(String date) { return new Teacher(5, date, "doudouda@gmail.com", "username"); } @@ -56,8 +56,8 @@ public class TeacherServiceStub implements ITeacherService { public List deleteTeacher(int id) { List allTeacher = new ArrayList(); - allTeacher.add(new Teacher(1, LocalDate.parse("12-01-2023", DateTimeFormatter.ISO_DATE), "aline.alipres@gmail.com", "MsGarconManque")); - allTeacher.add(new Teacher(2, LocalDate.parse("20-08-2023", DateTimeFormatter.ISO_DATE), "Viviane.Delvecchio@gmail.com", "MmeMath")); + allTeacher.add(new Teacher(1,"12-01-2023", "aline.alipres@gmail.com", "MsGarconManque")); + allTeacher.add(new Teacher(2, "20-08-2023", "Viviane.Delvecchio@gmail.com", "MmeMath")); allTeacher.remove(getTeacherById(id)); return allTeacher; From 296f34328f87af2c1c2277a2bd7aa183c1d7b0f9 Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 17:19:34 +0100 Subject: [PATCH 08/12] cleanning production of the day --- WebService/pom.xml | 46 +------- WebService/pom_LOCAL_26800.xml | 50 -------- .../controller/CollectController.java | 16 +++ .../controller/CollectionControlleur.java | 109 ------------------ .../SAE/ApiREST/WebService/model/Article.java | 1 + 5 files changed, 18 insertions(+), 204 deletions(-) delete mode 100644 WebService/pom_LOCAL_26800.xml create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectController.java delete mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java diff --git a/WebService/pom.xml b/WebService/pom.xml index 7344a54..6a8f4b5 100644 --- a/WebService/pom.xml +++ b/WebService/pom.xml @@ -1,46 +1,6 @@ -import org.springframework.web.bind.annotation.*; - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.2.2 - - - com.example - WebService - 0.0.1-SNAPSHOT - tp2 - Demo project for Spring Boot - - 17 - - - - org.springframework.boot - spring-boot-starter - - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-web - - - jakarta.persistence - jakarta.persistence-api - - -======= - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 org.springframework.boot @@ -67,7 +27,6 @@ import org.springframework.web.bind.annotation.*; spring-boot-starter-test test ->>>>>>> origin/Maxime org.springframework.boot @@ -79,8 +38,6 @@ import org.springframework.web.bind.annotation.*; -<<<<<<< HEAD -======= @@ -90,5 +47,4 @@ import org.springframework.web.bind.annotation.*; ->>>>>>> origin/Maxime \ No newline at end of file diff --git a/WebService/pom_LOCAL_26800.xml b/WebService/pom_LOCAL_26800.xml deleted file mode 100644 index 67a2f9f..0000000 --- a/WebService/pom_LOCAL_26800.xml +++ /dev/null @@ -1,50 +0,0 @@ - - - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.2.2 - - - com.example - WebService - 0.0.1-SNAPSHOT - tp2 - Demo project for Spring Boot - - 17 - - - - org.springframework.boot - spring-boot-starter - - - - org.springframework.boot - spring-boot-starter-test - test - - - - org.springframework.boot - spring-boot-starter-web - - - jakarta.persistence - jakarta.persistence-api - - - - - - - org.springframework.boot - spring-boot-maven-plugin - - - - - \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectController.java b/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectController.java new file mode 100644 index 0000000..99b3545 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectController.java @@ -0,0 +1,16 @@ +package SAE.ApiREST.WebService.controller; + +import org.springframework.http.MediaType; +import org.springframework.web.bind.annotation.GetMapping; +import java.util.ArrayList; +import java.util.Collection; +import java.util.List; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; + +@Controller + @RequestMapping("/CollectWebService") + public class CollectController { + + } + diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java b/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java deleted file mode 100644 index d0a6f3d..0000000 --- a/WebService/src/main/java/SAE/ApiREST/WebService/controller/CollectionControlleur.java +++ /dev/null @@ -1,109 +0,0 @@ -package SAE.ApiREST.WebService.controller; - -@org.springframework.stereotype.Controller - -@Controller -@RequestMapping("/CollectionWebService") -public class CollectionController { - private ArrayList collections = new ArrayList<>(); - - public Controller() { - - } - - @GetMapping(value = "/getAllCollection", produces = MediaType.APPLICATION_JSON_VALUE) - public @ResponseBody List getAllCollection() { - return collections; - } - - @GetMapping(value = "/getCollectionById/{isbn}", produces = MediaType.APPLICATION_JSON_VALUE) - public @ResponseBody Book getCollectionById(@PathVariable(value = "isbn") int isbn) { - for(Book book : books) { - if(book.isbn == isbn) { - return book; - } - } - throw new BookException("Undefined id"); - } - - @PostMapping("/logBooks") - public @ResponseBody void logBooks(@RequestParam("title") String title, @RequestParam("author") String author) { - books.add(new Book(title, author)); - for(Book book : books) { - System.out.println(book); - } - } - // region Collection - - // region GET - @GetMapping(value = "/getCollectionById", produces = MediaType.APPLICATION_JSON_VALUE) - public @ResponseBody Collection getCollectionById(long isbn){ - for(Collection collection : this.collections){ - if(collection.getId === isbn) { - return collection; - } - } - return null; - } - @GetMapping(value = "/getAllCollectionsByName", produces = MediaType.APPLICATION_JSON_VALUE) - public @ResponseBody List getAllCollectionsByName(String name){ - private ArrayList repCollections = new ArrayList(); - for(Collection collection : this.collections){ - if(collection.getName === name) { - repCollections.add(collection); - } - } - return repCollections; - } - // endregion - - // region DELETE - @DeleteMaping(value = "/deleteColletionById") - public @ResponseBody void deleteColletionById(long isbn){ - Collection collection = getCollectionById(isbn); - this.collections.remove(collection); - } - - public @ResponseBody void deleteColletionByName(String name){ - ArrayList collectionsByName = getAllCollectionsByName(name); - this.collections.remove(collectionsByName[0]); - } - public @ResponseBody void deleteAllColletionByName(String name){ - ArrayList collectionsByName = getAllCollectionsByName(name); - this.collections.removeAll(collectionsByName); - } - // endregion - - // region PUT - public @ResponseBody void addCollection(Collection collection){ - this.collections.add(collection); - } - public @ResponseBody void addCollections(List collections){ - this.collections.addAll(collections); - } - // endregion - - // region POST - public @ResponseBody void modifyCollectionName(Collection collection, String name){ - collection.setName(name); - } - public @ResponseBody void modifyCollectionNameById(long isbn, String name){ - Collection collection = getCollectionById(isbn); - modifyCollectionName(collection,name); - } - // endregion - // endregion - - // region Article - @GetMapping(value = "/getAllArticles", produces = MediaType.APPLICATION_JSON_VALUE) - public @ResponseBody List
getAllArticles(Collection collection){ - return collection.getAllArticles; - } - public @ResponseBody void addArticle(Collection collection, Article article){ - collection.addArticle - } - public @ResponseBody void deleteArticle(Collection collection, Article article){ - collection.deleteArticle(article); - } - // endregion -} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java b/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java index 49380f2..67997db 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java @@ -12,6 +12,7 @@ import jakarta.persistence.Id; public class Article { @Id @GeneratedValue(strategy = GenerationType.AUTO) + String title; String URL; LocalDate dateAdded; From 20ef277c3124560abd88859bec5ad1400d11a17f Mon Sep 17 00:00:00 2001 From: Roxane Date: Tue, 27 Feb 2024 09:55:27 +0100 Subject: [PATCH 09/12] modification int to Integer, controller teacher loading --- .../controller/TeacherController.java | 22 +++++++++++++++++++ .../SAE/ApiREST/WebService/model/Teacher.java | 8 +++---- .../WebService/service/ITeacherService.java | 4 ++-- .../service/TeacherServiceStub.java | 4 ++-- 4 files changed, 30 insertions(+), 8 deletions(-) diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java b/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java index 0c42fb5..5d44e1b 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java @@ -1,10 +1,17 @@ package SAE.ApiREST.WebService.controller; +import SAE.ApiREST.WebService.model.Teacher; import SAE.ApiREST.WebService.service.ITeacherService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import javax.print.attribute.standard.Media; +import java.awt.*; +import java.util.List; + @Controller @RequestMapping("/ProfWebService") public class TeacherController { @@ -15,4 +22,19 @@ public class TeacherController { public TeacherController(ITeacherService iserv) { this.iTeacherServ = iserv; } + + @GetMapping(value = "/all", produces = MediaType.APPLICATION_JSON_VALUE) + @ResponseStatus(HttpStatus.OK) + public List getAllTeacher(){ + return iTeacherServ.getAllTeacher(); + } + + @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + @ResponseStatus(HttpStatus.CREATED) + public Teacher createTeacher( @RequestBody Teacher teach){ + return teach; + } + + //@GetMapping(value = "/{id}") + //public } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java b/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java index 44cb60c..a121920 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java @@ -10,7 +10,7 @@ import java.util.Date; public class Teacher { @Id - private int id; + private Integer id; private LocalDate date; private String mail; private String username; @@ -19,18 +19,18 @@ public class Teacher { } - public Teacher(int id, String date, String mail, String username) { + public Teacher(Integer id, String date, String mail, String username) { this.id = id; this.date = LocalDate.parse(date, DateTimeFormatter.ISO_DATE); this.mail = mail; this.username = username; } - public int getId() { + public Integer getId() { return id; } - public void setId(int id) { + public void setId(Integer id) { this.id = id; } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java index 31c9bd7..329a2de 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java @@ -10,12 +10,12 @@ public interface ITeacherService { //Todo() by id, by mail, by username, allProf, by date (order), suppression, ajout, FAIRE DES REGIONS! public List getAllTeacher(); - Teacher getTeacherById(int id); + Teacher getTeacherById(Integer id); public Teacher getTeacherByUsername(String username); public Teacher getTeacherByMail(String mail); public Teacher getTeacherByDate(String date); public List addTeacher(Teacher t); - public List deleteTeacher(int id); + public List deleteTeacher(Integer id); } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java index c5d58f3..0b494f8 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java @@ -26,7 +26,7 @@ public class TeacherServiceStub implements ITeacherService { @Override - public Teacher getTeacherById(int id) { + public Teacher getTeacherById(Integer id) { return new Teacher(id, "10-01-2021", "exemple.gmail.com", "testest"); } @@ -53,7 +53,7 @@ public class TeacherServiceStub implements ITeacherService { } @Override - public List deleteTeacher(int id) { + public List deleteTeacher(Integer id) { List allTeacher = new ArrayList(); allTeacher.add(new Teacher(1,"12-01-2023", "aline.alipres@gmail.com", "MsGarconManque")); From d57ed6e0202e07003169299dd3fe81743b53f450 Mon Sep 17 00:00:00 2001 From: Roxane Date: Tue, 27 Feb 2024 16:43:35 +0100 Subject: [PATCH 10/12] construct of Tearcher's server part finished --- WebService/pom.xml | 44 -------------- .../controller/TeacherController.java | 58 ++++++++++++++++--- .../WebService/exception/TeacherAdvice.java | 17 ++++++ .../exception/TeacherException.java | 7 +++ .../SAE/ApiREST/WebService/model/Article.java | 11 ++-- .../SAE/ApiREST/WebService/model/Teacher.java | 6 +- .../WebService/service/ITeacherService.java | 9 +-- .../service/TeacherServiceStub.java | 18 ++++-- 8 files changed, 98 insertions(+), 72 deletions(-) create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/exception/TeacherAdvice.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/exception/TeacherException.java diff --git a/WebService/pom.xml b/WebService/pom.xml index 0f7f3be..fb20a79 100644 --- a/WebService/pom.xml +++ b/WebService/pom.xml @@ -1,34 +1,5 @@ - 4.0.0 - - org.springframework.boot - spring-boot-starter-parent - 3.2.2 - - - com.example - WebService - 0.0.1-SNAPSHOT - tp2 - Demo project for Spring Boot - - 17 - - - - org.springframework.boot - spring-boot-starter - - - - org.springframework.boot - spring-boot-starter-test - test - -======= xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"> 4.0.0 @@ -50,13 +21,11 @@ org.springframework.boot spring-boot-starter - org.springframework.boot spring-boot-starter-test test - org.springframework.boot spring-boot-starter-web @@ -66,18 +35,6 @@ jakarta.persistence-api ->>>>>>> origin/feature/response - - - org.springframework.boot - spring-boot-starter-web - - - jakarta.persistence - jakarta.persistence-api - - - @@ -86,5 +43,4 @@ - \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java b/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java index 5d44e1b..9a39d55 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java @@ -1,5 +1,7 @@ package SAE.ApiREST.WebService.controller; +import SAE.ApiREST.WebService.exception.TeacherAdvice; +import SAE.ApiREST.WebService.exception.TeacherException; import SAE.ApiREST.WebService.model.Teacher; import SAE.ApiREST.WebService.service.ITeacherService; import org.springframework.beans.factory.annotation.Autowired; @@ -10,8 +12,10 @@ import org.springframework.web.bind.annotation.*; import javax.print.attribute.standard.Media; import java.awt.*; +import java.util.ArrayList; import java.util.List; +//Todo() Response = Type de retour pour toutes les méthodes qui ont void @Controller @RequestMapping("/ProfWebService") public class TeacherController { @@ -25,16 +29,56 @@ public class TeacherController { @GetMapping(value = "/all", produces = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus(HttpStatus.OK) - public List getAllTeacher(){ + public @ResponseBody List getAllTeacher(){ return iTeacherServ.getAllTeacher(); } - - @PostMapping(produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) + @PostMapping(value = "addTeacher",produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus(HttpStatus.CREATED) - public Teacher createTeacher( @RequestBody Teacher teach){ + public @ResponseBody Teacher createTeacher( @RequestBody Teacher teach){ return teach; } - - //@GetMapping(value = "/{id}") - //public + @GetMapping(value = "/getid/{id}") + public @ResponseBody Teacher getTeachById(@PathVariable("id") Integer id){ + Teacher tt = iTeacherServ.getTeacherById(id); + if( tt == null ){ + throw new TeacherException("No teacher found for this id !"); + } + return tt; + } + @GetMapping(value = "/getusername/{username}") + public @ResponseBody Teacher getTeachByUsername(@PathVariable("username") String username) { + Teacher tt = iTeacherServ.getTeacherByUsername(username); + if (tt == null) { + throw new TeacherException("No teacher found for this username"); + } + return tt; + } + @GetMapping( value = "/getmail/{mail}" ) + public @ResponseBody Teacher getTeachByMail(@PathVariable("mail") String mail) { + Teacher tt = iTeacherServ.getTeacherByMail(mail); + if( tt == null ) { + throw new TeacherException("No teacher found for this mail"); + } + return tt; + } + @GetMapping( value = "/getdate/{date}" ) + public @ResponseBody Teacher getTeachByDate(@PathVariable("date") String date) { + Teacher tt = iTeacherServ.getTeacherByMail(date); + if( tt == null ) { + throw new TeacherException("No teacher found for this mail"); + } + return tt; + } + @PutMapping( value = "/modify/{username}" ) + public @ResponseBody Teacher modifyTeachUsername(@PathVariable("username") String username, Teacher tt){ + if( username == "" ){ + throw new TeacherException("Username provided for modification is empty"); + } + iTeacherServ.modifyUsername(tt,username); + return tt; + } + @DeleteMapping( value = "delete") + public @ResponseBody List deleteTeacher(Integer id){ + return iTeacherServ.deleteTeacher(id); + } } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/exception/TeacherAdvice.java b/WebService/src/main/java/SAE/ApiREST/WebService/exception/TeacherAdvice.java new file mode 100644 index 0000000..e781d8f --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/exception/TeacherAdvice.java @@ -0,0 +1,17 @@ +package SAE.ApiREST.WebService.exception; + +import org.springframework.http.HttpStatus; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.ResponseStatus; + +@ControllerAdvice +public class TeacherAdvice { + @ResponseBody + @ExceptionHandler(TeacherException.class) + @ResponseStatus(HttpStatus.NOT_FOUND) + public String teacherNFHandler( TeacherException e) { + return e.getMessage(); + } +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/exception/TeacherException.java b/WebService/src/main/java/SAE/ApiREST/WebService/exception/TeacherException.java new file mode 100644 index 0000000..ee61655 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/exception/TeacherException.java @@ -0,0 +1,7 @@ +package SAE.ApiREST.WebService.exception; + +public class TeacherException extends RuntimeException { + public TeacherException(String exception) { + super(exception); + } +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java b/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java index dc3876f..9de95af 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java @@ -12,11 +12,8 @@ import jakarta.persistence.Id; public class Article { @Id @GeneratedValue(strategy = GenerationType.AUTO) -<<<<<<< HEAD -======= - String id; ->>>>>>> origin/feature/response + Integer id; String title; String URL; LocalDate dateAdded; @@ -28,7 +25,7 @@ public class Article { public Article() {} public Article(String title, String URL, LocalDate dateAdded, LocalDate datePublished, Boolean visibility, Integer type) { - this.id = "1"; + this.id = 1; this.title = title; this.URL = URL; this.dateAdded = dateAdded; @@ -37,11 +34,11 @@ public class Article { this.type = type; } - public String getId() { + public Integer getId() { return this.id; } - public void setId(String id) { + public void setId(Integer id) { this.id = id; } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java b/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java index a121920..d153cd7 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/model/Teacher.java @@ -21,7 +21,7 @@ public class Teacher { public Teacher(Integer id, String date, String mail, String username) { this.id = id; - this.date = LocalDate.parse(date, DateTimeFormatter.ISO_DATE); + this.date = LocalDate.parse(date, DateTimeFormatter.ofPattern("dd-MM-yyyy")); this.mail = mail; this.username = username; } @@ -38,8 +38,8 @@ public class Teacher { return date; } - public void setDate(LocalDate date) { - this.date = date; + public void setDate(String date) { + this.date = LocalDate.parse(date, DateTimeFormatter.ofPattern("dd-MM-yyyy")); } public String getMail() { diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java index 329a2de..e610d0e 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java @@ -1,21 +1,18 @@ package SAE.ApiREST.WebService.service; +import SAE.ApiREST.WebService.Response; import SAE.ApiREST.WebService.model.Teacher; import java.time.LocalDate; import java.util.List; public interface ITeacherService { - - //Todo() by id, by mail, by username, allProf, by date (order), suppression, ajout, FAIRE DES REGIONS! public List getAllTeacher(); - - Teacher getTeacherById(Integer id); - + public Teacher getTeacherById(Integer id); public Teacher getTeacherByUsername(String username); public Teacher getTeacherByMail(String mail); public Teacher getTeacherByDate(String date); public List addTeacher(Teacher t); - public List deleteTeacher(Integer id); + public Response modifyUsername(Teacher t, String newUsername); } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java index 0b494f8..68f617f 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java @@ -1,5 +1,7 @@ package SAE.ApiREST.WebService.service; +import SAE.ApiREST.WebService.Response; +import SAE.ApiREST.WebService.exception.TeacherException; import SAE.ApiREST.WebService.model.Teacher; import org.springframework.stereotype.Service; @@ -31,9 +33,7 @@ public class TeacherServiceStub implements ITeacherService { } @Override - public Teacher getTeacherByUsername(String username) { - return new Teacher(12, "30-08-2020", "dadadou@gmail.com", username); - } + public Teacher getTeacherByUsername(String username) { return new Teacher(12, "30-08-2020", "dadadou@gmail.com", username); } @Override public Teacher getTeacherByMail(String mail) { @@ -59,7 +59,15 @@ public class TeacherServiceStub implements ITeacherService { allTeacher.add(new Teacher(1,"12-01-2023", "aline.alipres@gmail.com", "MsGarconManque")); allTeacher.add(new Teacher(2, "20-08-2023", "Viviane.Delvecchio@gmail.com", "MmeMath")); - allTeacher.remove(getTeacherById(id)); - return allTeacher; + if(allTeacher.remove(getTeacherById(id))){ + return allTeacher; + } else { + throw new TeacherException(String.format("Teacher {id} isn't removed", id)); + } + } + + public Response modifyUsername(Teacher t, String newUsername){ + t.setUsername(newUsername); + return new Response(t.getId(),String.format("This user %s has changed username", t.getMail())); } } From 6a7968d2b5546a67b29af018f85b5a063188413c Mon Sep 17 00:00:00 2001 From: Roxane Date: Tue, 27 Feb 2024 17:31:18 +0100 Subject: [PATCH 11/12] adding Hateos on the Teacher part --- WebService/pom.xml | 4 ++ .../controller/TeacherController.java | 50 +++++++++++++------ .../service/TeacherServiceStub.java | 1 + 3 files changed, 40 insertions(+), 15 deletions(-) diff --git a/WebService/pom.xml b/WebService/pom.xml index fb20a79..dbbd774 100644 --- a/WebService/pom.xml +++ b/WebService/pom.xml @@ -26,6 +26,10 @@ spring-boot-starter-test test + + org.springframework.boot + spring-boot-starter-hateoas + org.springframework.boot spring-boot-starter-web diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java b/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java index 9a39d55..548cfbe 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java @@ -4,7 +4,10 @@ import SAE.ApiREST.WebService.exception.TeacherAdvice; import SAE.ApiREST.WebService.exception.TeacherException; import SAE.ApiREST.WebService.model.Teacher; import SAE.ApiREST.WebService.service.ITeacherService; +import jakarta.persistence.Entity; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.hateoas.CollectionModel; +import org.springframework.hateoas.EntityModel; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.stereotype.Controller; @@ -15,7 +18,9 @@ import java.awt.*; import java.util.ArrayList; import java.util.List; -//Todo() Response = Type de retour pour toutes les méthodes qui ont void +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; +import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; + @Controller @RequestMapping("/ProfWebService") public class TeacherController { @@ -29,37 +34,48 @@ public class TeacherController { @GetMapping(value = "/all", produces = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus(HttpStatus.OK) - public @ResponseBody List getAllTeacher(){ - return iTeacherServ.getAllTeacher(); + public @ResponseBody CollectionModel getAllTeacher(){ + return CollectionModel.of( + iTeacherServ.getAllTeacher(), + linkTo(methodOn(TeacherController.class).getAllTeacher()).withSelfRel()); } @PostMapping(value = "addTeacher",produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus(HttpStatus.CREATED) - public @ResponseBody Teacher createTeacher( @RequestBody Teacher teach){ - return teach; + public @ResponseBody EntityModel createTeacher( @RequestBody Teacher teach){ + + return EntityModel.of(teach, + linkTo(methodOn(TeacherController.class).createTeacher(teach)).withSelfRel(), + linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); } @GetMapping(value = "/getid/{id}") - public @ResponseBody Teacher getTeachById(@PathVariable("id") Integer id){ + public @ResponseBody EntityModel getTeachById(@PathVariable("id") Integer id){ Teacher tt = iTeacherServ.getTeacherById(id); if( tt == null ){ throw new TeacherException("No teacher found for this id !"); } - return tt; + return EntityModel.of(tt, + linkTo(methodOn(TeacherController.class).getTeachById(id)).withSelfRel(), + linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); } @GetMapping(value = "/getusername/{username}") - public @ResponseBody Teacher getTeachByUsername(@PathVariable("username") String username) { + public @ResponseBody EntityModel getTeachByUsername(@PathVariable("username") String username) { Teacher tt = iTeacherServ.getTeacherByUsername(username); if (tt == null) { throw new TeacherException("No teacher found for this username"); } - return tt; + return EntityModel.of(tt, + linkTo(methodOn(TeacherController.class).getTeachByUsername(username)).withSelfRel(), + linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); } @GetMapping( value = "/getmail/{mail}" ) - public @ResponseBody Teacher getTeachByMail(@PathVariable("mail") String mail) { + public @ResponseBody EntityModel getTeachByMail(@PathVariable("mail") String mail) { Teacher tt = iTeacherServ.getTeacherByMail(mail); if( tt == null ) { throw new TeacherException("No teacher found for this mail"); } - return tt; + return EntityModel.of(tt, + linkTo(methodOn(TeacherController.class).getTeachByMail(mail)).withSelfRel(), + linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); } @GetMapping( value = "/getdate/{date}" ) public @ResponseBody Teacher getTeachByDate(@PathVariable("date") String date) { @@ -70,15 +86,19 @@ public class TeacherController { return tt; } @PutMapping( value = "/modify/{username}" ) - public @ResponseBody Teacher modifyTeachUsername(@PathVariable("username") String username, Teacher tt){ + public @ResponseBody EntityModel modifyTeachUsername(@PathVariable("username") String username, Teacher tt){ if( username == "" ){ throw new TeacherException("Username provided for modification is empty"); } iTeacherServ.modifyUsername(tt,username); - return tt; + return EntityModel.of(tt, + linkTo(methodOn(TeacherController.class).modifyTeachUsername(username,tt)).withSelfRel(), + linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); } @DeleteMapping( value = "delete") - public @ResponseBody List deleteTeacher(Integer id){ - return iTeacherServ.deleteTeacher(id); + public @ResponseBody EntityModel> deleteTeacher(Integer id){ + return EntityModel.of(iTeacherServ.deleteTeacher(id), + linkTo(methodOn(TeacherController.class).deleteTeacher(id)).withSelfRel(), + linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); } } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java index 68f617f..a4e9f51 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java @@ -40,6 +40,7 @@ public class TeacherServiceStub implements ITeacherService { return new Teacher(20, "24-12-2021", mail, "tructruc"); } + //Todo() Before date, After date, between date @Override public Teacher getTeacherByDate(String date) { return new Teacher(5, date, "doudouda@gmail.com", "username"); From f1340fe6a748dc1c6db7f104a39e09059ab6fa3f Mon Sep 17 00:00:00 2001 From: Roxane Date: Fri, 1 Mar 2024 10:14:13 +0100 Subject: [PATCH 12/12] Back to the version without repository --- .../java/SAE/ApiREST/WebService/service/TeacherServiceStub.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java index a4e9f51..43e5923 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java @@ -14,7 +14,6 @@ import java.util.List; @Service public class TeacherServiceStub implements ITeacherService { - //todo() recevoir collections, ajouter collections, supprimer collections @Override public List getAllTeacher() { List allTeacher = new ArrayList(); @@ -40,7 +39,6 @@ public class TeacherServiceStub implements ITeacherService { return new Teacher(20, "24-12-2021", mail, "tructruc"); } - //Todo() Before date, After date, between date @Override public Teacher getTeacherByDate(String date) { return new Teacher(5, date, "doudouda@gmail.com", "username");