From 6be5ebbb5117d5fd8f50a868aa49c22e4db05348 Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 11:29:01 +0100 Subject: [PATCH 01/10] 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 087421b2dae36d3fcb81c06ea8bff3ec2033b679 Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 15:47:56 +0100 Subject: [PATCH 02/10] 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 03/10] 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 dea039601cc090705ee2bb658b5bd0fd99556c9c Mon Sep 17 00:00:00 2001 From: felix Date: Mon, 26 Feb 2024 16:16:32 +0100 Subject: [PATCH 04/10] POJO Article --- .../SAE/ApiREST/WebService/model/Article.java | 90 +++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java b/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java new file mode 100644 index 0000000..49380f2 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/model/Article.java @@ -0,0 +1,90 @@ +package SAE.ApiREST.WebService.model; + + +import java.time.LocalDate; + +import jakarta.persistence.Entity; +import jakarta.persistence.GeneratedValue; +import jakarta.persistence.GenerationType; +import jakarta.persistence.Id; + +@Entity +public class Article { + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + String title; + String URL; + LocalDate dateAdded; + LocalDate datePublished; + Boolean isVisible; + Integer type; + // ArrayList keywords = new ArrayList<>(); + + public Article() {} + + public Article(String title, String URL, LocalDate dateAdded, LocalDate datePublished, Boolean visibility, Integer type) { + this.title = title; + this.URL = URL; + this.dateAdded = dateAdded; + this.datePublished = datePublished; + this.isVisible = visibility; + this.type = type; + } + + public String getTitle() { + return this.title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getURL() { + return this.URL; + } + + public void setURL(String URL) { + this.URL = URL; + } + + public LocalDate getDateAdded() { + return this.dateAdded; + } + + public void setDateAdded(LocalDate dateAdded) { + this.dateAdded = dateAdded; + } + + public LocalDate getDatePublished() { + return this.datePublished; + } + + public void setDatePublished(LocalDate datePublished) { + this.datePublished = datePublished; + } + + public Boolean isVisible() { + return this.isVisible; + } + + public void setVisibility(Boolean isVisible) { + this.isVisible = isVisible; + } + + public Integer getType() { + return this.type; + } + + public void setType(Integer type) { + this.type = type; + } +/* + public List getKeywords() { + return this.keywords; + } + + public void setKeywords(List keywords) { + this.keywords = keywords; + } +*/ +} From 8af44d145d44ab9c3e2b3bd6d0169c93e17c0a9c Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 16:19:57 +0100 Subject: [PATCH 05/10] 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 06/10] 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 de0aac4769667e37ab5ca69f2c49aab3f2fcb267 Mon Sep 17 00:00:00 2001 From: felix Date: Mon, 26 Feb 2024 17:11:09 +0100 Subject: [PATCH 07/10] GET requests --- WebService/pom.xml | 15 +- .../controller/ArticleControler.java | 165 +++++++++++++ .../WebService/exception/ArticleAdvice.java | 17 ++ .../exception/ArticleException.java | 7 + .../SAE/ApiREST/WebService/model/Article.java | 10 + .../WebService/service/IArticleService.java | 24 ++ .../service/StubArticleService.java | 227 ++++++++++++++++++ 7 files changed, 462 insertions(+), 3 deletions(-) create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/controller/ArticleControler.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/exception/ArticleAdvice.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/exception/ArticleException.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/service/IArticleService.java create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/service/StubArticleService.java diff --git a/WebService/pom.xml b/WebService/pom.xml index 9f379f5..de41c7d 100644 --- a/WebService/pom.xml +++ b/WebService/pom.xml @@ -5,13 +5,13 @@ 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 + diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/controller/ArticleControler.java b/WebService/src/main/java/SAE/ApiREST/WebService/controller/ArticleControler.java new file mode 100644 index 0000000..4449e34 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/controller/ArticleControler.java @@ -0,0 +1,165 @@ +package SAE.ApiREST.WebService.controller; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.MediaType; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import SAE.ApiREST.WebService.exception.ArticleException; +import SAE.ApiREST.WebService.model.Article; +import SAE.ApiREST.WebService.service.IArticleService; + +import java.util.ArrayList; +import java.util.List; + +@Controller +@RequestMapping("/ArticleWebService") +public class ArticleControler { + @Autowired + IArticleService articleService; + + // region POST + + // endregion + + // region PUT + + // endregion + + // region GET + + @GetMapping(value = "/getAllArticle", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getAllArticles() { + ArrayList
results = (ArrayList
) articleService.getAllArticles(); + + if(results.isEmpty()) { + throw new ArticleException("No articles available"); + } + + return results; + } + + @GetMapping(value = "/getArticleById/{id}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody Article getArticlesById(@PathVariable(value = "id") Integer id) { + Article results = articleService.getArticlesById(id); + + if(results == null) { + throw new ArticleException("Undefined id"); + } + + return results; + } + + @GetMapping(value = "/getArticlesByTitle/{title}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getArticlesByTitle(@PathVariable(value = "title") String title) { + ArrayList
results = (ArrayList
) articleService.getArticlesByTitle(title); + + if(results.isEmpty()) { + throw new ArticleException("Undefined title"); + } + + return results; + } + + @GetMapping(value = "/getArticlesByType/{type}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getArticlesByType(@PathVariable(value = "type") Integer type) { + ArrayList
results = (ArrayList
) articleService.getArticlesByType(type); + + if (results.isEmpty()) { + throw new ArticleException(String.format("No content of type %d", type)); + } + + return results; + } + + @GetMapping(value = "/getVisibleArticles", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getVisibleArticles() { + ArrayList
results = (ArrayList
) articleService.getVisibleArticles(); + + if (results.isEmpty()) { + throw new ArticleException("No visible article"); + } + + return results; + } + + @GetMapping(value = "/getInvisibleArticles", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getInvisibleArticles() { + ArrayList
results = (ArrayList
) articleService.getInvisibleArticles(); + + if (results.isEmpty()) { + throw new ArticleException("No invisible article"); + } + + return results; + } + + @GetMapping(value = "/getArticlesAddedBefore/{dateAdded}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getArticlesAddedBefore(@PathVariable(value = "dateAdded") String dateAdded) { + ArrayList
results = (ArrayList
) articleService.getArticlesAddedBefore(dateAdded); + + if (results.isEmpty()) { + throw new ArticleException(String.format("No article added before %t", dateAdded)); + } + return results; + } + + @GetMapping(value = "/getArticlesAddedAfter/{dateAdded}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getArticlesAddedAfter(@PathVariable(value = "dateAdded") String dateAdded) { + ArrayList
results = (ArrayList
) articleService.getArticlesAddedAfter(dateAdded); + + if (results.isEmpty()) { + throw new ArticleException(String.format("No article added after %t", dateAdded)); + } + return results; + } + + @GetMapping(value = "/getArticlesAddedBetween/{beginning}/{end}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getArticlesAddedAfter(@PathVariable(value = "beginning") String beginning, @PathVariable(value = "end") String end) { + ArrayList
results = (ArrayList
) articleService.getArticlesAddedBetween(beginning, end); + + if (results.isEmpty()) { + throw new ArticleException(String.format("No article added between %t and %t", beginning, end)); + } + return results; + } + + @GetMapping(value = "/getArticlesPublishedBefore/{datePublished}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getArticlesPublishedBefore(@PathVariable(value = "datePublished") String datePublished) { + ArrayList
results = (ArrayList
) articleService.getArticlesPublishedBefore(datePublished); + + if (results.isEmpty()) { + throw new ArticleException(String.format("No article published before %t", datePublished)); + } + + return results; + } + + @GetMapping(value = "/getArticlesPublishedAfter/{datePublished}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getArticlesPublishedAfter(@PathVariable(value = "datePublished") String datePublished) { + ArrayList
results = (ArrayList
) articleService.getArticlesPublishedAfter(datePublished); + + if (results.isEmpty()) { + throw new ArticleException(String.format("No article published after %t", datePublished)); + } + + return results; + } + + @GetMapping(value = "/getArticlesPublishedBetween/{beginning}/{end}", produces = MediaType.APPLICATION_JSON_VALUE) + public @ResponseBody List
getArticlesPublishedAfter(@PathVariable(value = "beginning") String beginning, @PathVariable(value = "end") String end) { + ArrayList
results = (ArrayList
) articleService.getArticlesPublishedBetween(beginning, end); + + if (results.isEmpty()) { + throw new ArticleException(String.format("No article published between %t and %t", beginning, end)); + } + + return results; + } + + // endregion + + // region DELETE + + // endregion +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/exception/ArticleAdvice.java b/WebService/src/main/java/SAE/ApiREST/WebService/exception/ArticleAdvice.java new file mode 100644 index 0000000..9e57124 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/exception/ArticleAdvice.java @@ -0,0 +1,17 @@ +package SAE.ApiREST.WebService.exception; + +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; +import org.springframework.http.HttpStatus; + +@ControllerAdvice +public class ArticleAdvice { + @ResponseBody + @ExceptionHandler(ArticleException.class) + @ResponseStatus(HttpStatus.NOT_FOUND) + String articleHandler(ArticleException ex) { + return ex.getMessage(); + } +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/exception/ArticleException.java b/WebService/src/main/java/SAE/ApiREST/WebService/exception/ArticleException.java new file mode 100644 index 0000000..9de657d --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/exception/ArticleException.java @@ -0,0 +1,7 @@ +package SAE.ApiREST.WebService.exception; + +public class ArticleException extends RuntimeException { + public ArticleException(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 49380f2..550d3b0 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 id; String title; String URL; LocalDate dateAdded; @@ -23,6 +24,7 @@ public class Article { public Article() {} public Article(String title, String URL, LocalDate dateAdded, LocalDate datePublished, Boolean visibility, Integer type) { + this.id = "1"; this.title = title; this.URL = URL; this.dateAdded = dateAdded; @@ -31,6 +33,14 @@ public class Article { this.type = type; } + public String getId() { + return this.id; + } + + public void setId(String id) { + this.id = id; + } + public String getTitle() { return this.title; } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/IArticleService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/IArticleService.java new file mode 100644 index 0000000..427d987 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/IArticleService.java @@ -0,0 +1,24 @@ +package SAE.ApiREST.WebService.service; + +import java.util.List; + +import SAE.ApiREST.WebService.model.Article; + +public interface IArticleService { + + // region GET + public List
getAllArticles(); + Article getArticlesById(Integer id); + public List
getArticlesByTitle(String title); + public List
getArticlesByType(Integer type); + public List
getVisibleArticles(); + public List
getInvisibleArticles(); + public List
getArticlesAddedBefore(String dateAdded); + public List
getArticlesAddedAfter(String dateAdded); + public List
getArticlesAddedBetween(String beginning, String end); + public List
getArticlesPublishedBefore(String datePublished); + public List
getArticlesPublishedAfter(String datePublished); + public List
getArticlesPublishedBetween(String beginning, String end); + // endregion + +} diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/StubArticleService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/StubArticleService.java new file mode 100644 index 0000000..2ea238a --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/StubArticleService.java @@ -0,0 +1,227 @@ +package SAE.ApiREST.WebService.service; + +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; +import java.util.List; + +import org.springframework.stereotype.Service; + +import SAE.ApiREST.WebService.model.Article; + +@Service +public class StubArticleService implements IArticleService { + + // region GET + @Override + public List
getAllArticles() { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "toi", + "azezeaea", + LocalDate.now().minusMonths(1), + LocalDate.now().minusMonths(2), + true, + 1) + ); + articles.add(new Article( + "moi", + "zaeaeaeazeza", + LocalDate.now().minusMonths(2), + LocalDate.now().minusMonths(3), + false, + 1) + ); + articles.add(new Article( + "eux", + "erfdhdh", + LocalDate.now().minusMonths(3), + LocalDate.now().minusMonths(4), + true, + 1) + ); + articles.add(new Article( + "tout ceux qui le veulent", + "azersdfgg", + LocalDate.now().minusMonths(4), + LocalDate.now().minusMonths(5), + false, + 2) + ); + + return articles; + } + + @Override + public Article getArticlesById(Integer id) { + return new Article( + "azeaeaze", + "azezeaea", + LocalDate.now().minusMonths(1), + LocalDate.now().minusMonths(2), + true, + 1); + } + + @Override + public List
getArticlesByTitle(String title) { + List
articles = new ArrayList<>(); + + articles.add(new Article( + title, + "azezeaea", + LocalDate.now().minusMonths(1), + LocalDate.now().minusMonths(2), + true, + 1) + ); + + return articles; + } + + @Override + public List
getArticlesByType(Integer type) { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "aeazeazeaz", + "azezeaea", + LocalDate.now().minusMonths(1), + LocalDate.now().minusMonths(2), + true, + type) + ); + + return articles; + } + + @Override + public List
getVisibleArticles() { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "toi", + "azezeaea", + LocalDate.now().minusMonths(1), + LocalDate.now().minusMonths(2), + true, + 1) + ); + + return articles; + } + + @Override + public List
getInvisibleArticles() { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "toi", + "azezeaea", + LocalDate.now().minusMonths(1), + LocalDate.now().minusMonths(2), + false, + 1) + ); + + return articles; + } + + @Override + public List
getArticlesAddedBefore(String dateAdded) { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "toi", + "azezeaea", + LocalDate.parse(dateAdded, DateTimeFormatter.ISO_DATE).minusMonths(1), + LocalDate.now().minusMonths(2), + true, + 1) + ); + + return articles; + } + + @Override + public List
getArticlesAddedAfter(String dateAdded) { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "toi", + "azezeaea", + LocalDate.parse(dateAdded, DateTimeFormatter.ISO_DATE).plusMonths(1), + LocalDate.now().minusMonths(2), + true, + 1) + ); + + return articles; + } + + @Override + public List
getArticlesAddedBetween(String beginning, String end) { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "toi", + "azezeaea", + LocalDate.parse(beginning, DateTimeFormatter.ISO_DATE), + LocalDate.now().minusMonths(2), + true, + 1) + ); + + return articles; + } + + @Override + public List
getArticlesPublishedBefore(String datePublished) { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "toi", + "azezeaea", + LocalDate.now().minusMonths(1), + LocalDate.parse(datePublished, DateTimeFormatter.ISO_DATE).plusMonths(2), + true, + 1) + ); + + return articles; + } + + @Override + public List
getArticlesPublishedAfter(String datePublished) { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "toi", + "azezeaea", + LocalDate.now().minusMonths(1), + LocalDate.parse(datePublished, DateTimeFormatter.ISO_DATE).plusMonths(2), + true, + 1) + ); + + return articles; + } + + @Override + public List
getArticlesPublishedBetween(String beginning, String end) { + List
articles = new ArrayList<>(); + + articles.add(new Article( + "toi", + "azezeaea", + LocalDate.now().minusMonths(1), + LocalDate.parse(end, DateTimeFormatter.ISO_DATE), + true, + 1) + ); + + return articles; + } + // endregion +} From 296f34328f87af2c1c2277a2bd7aa183c1d7b0f9 Mon Sep 17 00:00:00 2001 From: Roxane Date: Mon, 26 Feb 2024 17:19:34 +0100 Subject: [PATCH 08/10] 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 59a5432820698b888a3c32afc7bd8c68e3f07e7c Mon Sep 17 00:00:00 2001 From: felix Date: Tue, 27 Feb 2024 09:52:34 +0100 Subject: [PATCH 09/10] creation Response.java --- .../java/SAE/ApiREST/WebService/Response.java | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 WebService/src/main/java/SAE/ApiREST/WebService/Response.java diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/Response.java b/WebService/src/main/java/SAE/ApiREST/WebService/Response.java new file mode 100644 index 0000000..760d292 --- /dev/null +++ b/WebService/src/main/java/SAE/ApiREST/WebService/Response.java @@ -0,0 +1,30 @@ +package SAE.ApiREST.WebService; + +public class Response { + + Integer id; + String statusMessage; + + public Response() {} + + public Response(Integer id, String statusMessage) { + this.id = id; + this.statusMessage = statusMessage; + } + + public Integer getId() { + return this.id; + } + + public void setId(Integer id) { + this.id = id; + } + + public String getStatusMessage() { + return this.statusMessage; + } + + public void setStatusMessage(String statusMessage) { + this.statusMessage = statusMessage; + } +} From 20ef277c3124560abd88859bec5ad1400d11a17f Mon Sep 17 00:00:00 2001 From: Roxane Date: Tue, 27 Feb 2024 09:55:27 +0100 Subject: [PATCH 10/10] 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"));