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 8515812..68947bc 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/controller/TeacherController.java @@ -1,11 +1,10 @@ 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 jakarta.persistence.Entity; +import SAE.ApiREST.WebService.service.TeacherService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.hateoas.CollectionModel; import org.springframework.hateoas.EntityModel; import org.springframework.http.HttpStatus; @@ -13,9 +12,6 @@ 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.ArrayList; import java.util.List; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; @@ -24,19 +20,21 @@ import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; @Controller @RequestMapping("/ProfWebService") public class TeacherController { + @Autowired - private ITeacherService iTeacherServ; + private TeacherService teacherServ; - public TeacherController(ITeacherService iserv) { - this.iTeacherServ = iserv; + public void setiTeacherServ(TeacherService iTeacherS) { + this.teacherServ = iTeacherS; } + @GetMapping(value = "/all", produces = MediaType.APPLICATION_JSON_VALUE) @ResponseStatus(HttpStatus.OK) public @ResponseBody CollectionModel getAllTeacher(){ return CollectionModel.of( - iTeacherServ.getAllTeacher(), + teacherServ.getAllTeacher(), linkTo(methodOn(TeacherController.class).getAllTeacher()).withSelfRel()); } @PostMapping(value = "addTeacher",produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @@ -49,7 +47,7 @@ public class TeacherController { } @GetMapping(value = "/getid/{id}") public @ResponseBody EntityModel getTeachById(@PathVariable("id") Integer id){ - Teacher tt = iTeacherServ.getTeacherById(id); + Teacher tt = teacherServ.getTeacherById(id); if( tt == null ){ throw new TeacherException("No teacher found for this id !"); } @@ -59,7 +57,7 @@ public class TeacherController { } @GetMapping(value = "/getusername/{username}") public @ResponseBody EntityModel getTeachByUsername(@PathVariable("username") String username) { - Teacher tt = iTeacherServ.getTeacherByUsername(username); + Teacher tt = teacherServ.getTeacherByUsername(username); if (tt == null) { throw new TeacherException("No teacher found for this username"); } @@ -69,7 +67,7 @@ public class TeacherController { } @GetMapping( value = "/getmail/{mail}" ) public @ResponseBody EntityModel getTeachByMail(@PathVariable("mail") String mail) { - Teacher tt = iTeacherServ.getTeacherByMail(mail); + Teacher tt = teacherServ.getTeacherByMail(mail); if( tt == null ) { throw new TeacherException("No teacher found for this mail"); } @@ -79,7 +77,7 @@ public class TeacherController { } @GetMapping( value = "/getdate/{date}" ) public @ResponseBody Teacher getTeachByDate(@PathVariable("date") String date) { - Teacher tt = iTeacherServ.getTeacherByMail(date); + Teacher tt = teacherServ.getTeacherByMail(date); if( tt == null ) { throw new TeacherException("No teacher found for this mail"); } @@ -90,16 +88,15 @@ public class TeacherController { if( username == "" ){ throw new TeacherException("Username provided for modification is empty"); } - iTeacherServ.modifyUsername(tt,username); + teacherServ.modifyUsername(tt,username); return EntityModel.of(tt, linkTo(methodOn(TeacherController.class).modifyTeachUsername(username,tt)).withSelfRel(), linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); } @DeleteMapping( value = "delete") public @ResponseBody EntityModel> deleteTeacher(Integer id){ - return EntityModel.of(iTeacherServ.deleteTeacher(id), + return EntityModel.of(teacherServ.deleteTeacher(id), linkTo(methodOn(TeacherController.class).deleteTeacher(id)).withSelfRel(), linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); } } -//Todo() linkto dans service. \ No newline at end of file diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/repository/ITeacherRepository.java b/WebService/src/main/java/SAE/ApiREST/WebService/repository/ITeacherRepository.java index 508a18d..189b545 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/repository/ITeacherRepository.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/repository/ITeacherRepository.java @@ -1,9 +1,11 @@ package SAE.ApiREST.WebService.repository; import SAE.ApiREST.WebService.model.Teacher; +import org.springframework.context.annotation.Bean; import org.springframework.data.jpa.repository.JpaRepository; import org.springframework.stereotype.Repository; +import java.time.LocalDate; import java.util.List; @Repository @@ -14,5 +16,5 @@ public interface ITeacherRepository extends JpaRepository< Teacher, Integer> { Teacher findByMail(String mail); - Teacher findByDate(String date); + Teacher findByDate(LocalDate date); } diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/IArticleService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/IArticleService.java index 427d987..87d36c0 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/IArticleService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/IArticleService.java @@ -7,18 +7,18 @@ import SAE.ApiREST.WebService.model.Article; public interface IArticleService { // region GET - public List
getAllArticles(); + 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); + List
getArticlesByTitle(String title); + List
getArticlesByType(Integer type); + List
getVisibleArticles(); + List
getInvisibleArticles(); + List
getArticlesAddedBefore(String dateAdded); + List
getArticlesAddedAfter(String dateAdded); + List
getArticlesAddedBetween(String beginning, String end); + List
getArticlesPublishedBefore(String datePublished); + List
getArticlesPublishedAfter(String datePublished); + List
getArticlesPublishedBetween(String beginning, String end); // endregion } 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 8e3cec6..66c4cdd 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/ICollectionService.java @@ -5,17 +5,17 @@ import SAE.ApiREST.WebService.model.Article; import java.util.List; public interface ICollectionService{ - 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(Collect collection); - public void addCollections(List collection); - public void modifyCollectionName(Collect collection, String name); - public void modifyCollectionNameById(long isbn, String name); - public List
getAllArticles(Collect collection); - public void addArticle(Collect collection, Article article); - public void deleteArticle(Collect collection, Article article); + List getAllCollections(); + Collect getCollectionById(long isbn); + List getAllCollectionsByName(String name); + void deleteColletionById(long isbn); + void deleteColletionByName(String name); + void deleteAllColletionByName(String name); + void addCollection(Collect collection); + void addCollections(List collection); + void modifyCollectionName(Collect collection, String name); + void modifyCollectionNameById(long isbn, String name); + List
getAllArticles(Collect collection); + void addArticle(Collect collection, Article article); + 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 deleted file mode 100644 index e610d0e..0000000 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/ITeacherService.java +++ /dev/null @@ -1,18 +0,0 @@ -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 { - public List getAllTeacher(); - 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/TeacherService.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherService.java index f4ef135..6a6abb4 100644 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherService.java +++ b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherService.java @@ -6,59 +6,64 @@ import SAE.ApiREST.WebService.repository.ITeacherRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import java.time.LocalDate; +import java.time.format.DateTimeFormatter; import java.util.List; @Service -public class TeacherService implements ITeacherService { +public class TeacherService { + - @Autowired private final ITeacherRepository teachRep; + @Autowired public TeacherService(ITeacherRepository teachRep) { + this.teachRep = teachRep; } - @Override + public List getAllTeacher() { return teachRep.findAll(); } - @Override + public Teacher getTeacherById(Integer id) { return teachRep.getReferenceById(id); } - @Override + public Teacher getTeacherByUsername(String username) { return teachRep.findByUsername(username); } - @Override + public Teacher getTeacherByMail(String mail) { return teachRep.findByMail(mail); } - @Override + public Teacher getTeacherByDate(String date) { - return teachRep.findByDate(date); + LocalDate d = LocalDate.parse(date, DateTimeFormatter.ofPattern("dd-MM-yyyy")); + return teachRep.findByDate(d); } - @Override + public List addTeacher(Teacher t) { List lT = getAllTeacher(); lT.add(t); return lT; } - @Override + public List deleteTeacher(Integer id) { List lT = getAllTeacher(); lT.remove(getTeacherById(id)); return lT; } - @Override + public Response modifyUsername(Teacher t, String newUsername) { t.setUsername(newUsername); return new Response(t.getId(), String.format("Username changed for {id}", t.getId())); diff --git a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java b/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java deleted file mode 100644 index a4e9f51..0000000 --- a/WebService/src/main/java/SAE/ApiREST/WebService/service/TeacherServiceStub.java +++ /dev/null @@ -1,74 +0,0 @@ -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; - -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, "12-01-2023", "aline.alipres@gmail.com", "MsGarconManque")); - allTeacher.add(new Teacher(2, "20-08-2023", "Viviane.Delvecchio@gmail.com", "MmeMath")); - - return allTeacher; - } - - - - @Override - public Teacher getTeacherById(Integer 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"); - } - - //Todo() Before date, After date, between date - @Override - public Teacher getTeacherByDate(String date) { - return new Teacher(5, date, "doudouda@gmail.com", "username"); - } - - @Override - public List addTeacher(Teacher t) { - List lteach = new ArrayList(); - lteach.add(t); - return lteach; - } - - @Override - public List deleteTeacher(Integer id) { - List allTeacher = new ArrayList(); - - 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")); - - 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())); - } -}