Compare commits

...

4 Commits

@ -26,6 +26,10 @@
<artifactId>spring-boot-starter-test</artifactId> <artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope> <scope>test</scope>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-jpa</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-hateoas</artifactId> <artifactId>spring-boot-starter-hateoas</artifactId>
@ -38,6 +42,22 @@
<groupId>jakarta.persistence</groupId> <groupId>jakarta.persistence</groupId>
<artifactId>jakarta.persistence-api</artifactId> <artifactId>jakarta.persistence-api</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<scope>provided</scope>
</dependency>
</dependencies> </dependencies>
<build> <build>
<plugins> <plugins>

@ -1,11 +1,10 @@
package SAE.ApiREST.WebService.controller; package SAE.ApiREST.WebService.controller;
import SAE.ApiREST.WebService.exception.TeacherAdvice;
import SAE.ApiREST.WebService.exception.TeacherException; import SAE.ApiREST.WebService.exception.TeacherException;
import SAE.ApiREST.WebService.model.Teacher; import SAE.ApiREST.WebService.model.Teacher;
import SAE.ApiREST.WebService.service.ITeacherService; import SAE.ApiREST.WebService.service.TeacherService;
import jakarta.persistence.Entity;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.hateoas.CollectionModel; import org.springframework.hateoas.CollectionModel;
import org.springframework.hateoas.EntityModel; import org.springframework.hateoas.EntityModel;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
@ -13,9 +12,6 @@ import org.springframework.http.MediaType;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.print.attribute.standard.Media;
import java.awt.*;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo;
@ -24,19 +20,21 @@ import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn;
@Controller @Controller
@RequestMapping("/ProfWebService") @RequestMapping("/ProfWebService")
public class TeacherController { public class TeacherController {
@Autowired @Autowired
private ITeacherService iTeacherServ; private TeacherService teacherServ;
public TeacherController(ITeacherService iserv) { /*public void setiTeacherServ(TeacherService iTeacherS) {
this.iTeacherServ = iserv; this.teacherServ = iTeacherS;
} }*/
@GetMapping(value = "/all", produces = MediaType.APPLICATION_JSON_VALUE) @GetMapping(value = "/all", produces = MediaType.APPLICATION_JSON_VALUE)
@ResponseStatus(HttpStatus.OK) @ResponseStatus(HttpStatus.OK)
public @ResponseBody CollectionModel<Teacher> getAllTeacher(){ public @ResponseBody CollectionModel<Teacher> getAllTeacher(){
return CollectionModel.of( return CollectionModel.of(
iTeacherServ.getAllTeacher(), teacherServ.getAllTeacher(),
linkTo(methodOn(TeacherController.class).getAllTeacher()).withSelfRel()); linkTo(methodOn(TeacherController.class).getAllTeacher()).withSelfRel());
} }
@PostMapping(value = "addTeacher",produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE) @PostMapping(value = "addTeacher",produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
@ -49,7 +47,7 @@ public class TeacherController {
} }
@GetMapping(value = "/getid/{id}") @GetMapping(value = "/getid/{id}")
public @ResponseBody EntityModel<Teacher> getTeachById(@PathVariable("id") Integer id){ public @ResponseBody EntityModel<Teacher> getTeachById(@PathVariable("id") Integer id){
Teacher tt = iTeacherServ.getTeacherById(id); Teacher tt = teacherServ.getTeacherById(id);
if( tt == null ){ if( tt == null ){
throw new TeacherException("No teacher found for this id !"); throw new TeacherException("No teacher found for this id !");
} }
@ -59,7 +57,7 @@ public class TeacherController {
} }
@GetMapping(value = "/getusername/{username}") @GetMapping(value = "/getusername/{username}")
public @ResponseBody EntityModel<Teacher> getTeachByUsername(@PathVariable("username") String username) { public @ResponseBody EntityModel<Teacher> getTeachByUsername(@PathVariable("username") String username) {
Teacher tt = iTeacherServ.getTeacherByUsername(username); Teacher tt = teacherServ.getTeacherByUsername(username);
if (tt == null) { if (tt == null) {
throw new TeacherException("No teacher found for this username"); throw new TeacherException("No teacher found for this username");
} }
@ -69,7 +67,7 @@ public class TeacherController {
} }
@GetMapping( value = "/getmail/{mail}" ) @GetMapping( value = "/getmail/{mail}" )
public @ResponseBody EntityModel<Teacher> getTeachByMail(@PathVariable("mail") String mail) { public @ResponseBody EntityModel<Teacher> getTeachByMail(@PathVariable("mail") String mail) {
Teacher tt = iTeacherServ.getTeacherByMail(mail); Teacher tt = teacherServ.getTeacherByMail(mail);
if( tt == null ) { if( tt == null ) {
throw new TeacherException("No teacher found for this mail"); throw new TeacherException("No teacher found for this mail");
} }
@ -79,7 +77,7 @@ public class TeacherController {
} }
@GetMapping( value = "/getdate/{date}" ) @GetMapping( value = "/getdate/{date}" )
public @ResponseBody Teacher getTeachByDate(@PathVariable("date") String date) { public @ResponseBody Teacher getTeachByDate(@PathVariable("date") String date) {
Teacher tt = iTeacherServ.getTeacherByMail(date); Teacher tt = teacherServ.getTeacherByMail(date);
if( tt == null ) { if( tt == null ) {
throw new TeacherException("No teacher found for this mail"); throw new TeacherException("No teacher found for this mail");
} }
@ -90,14 +88,14 @@ public class TeacherController {
if( username == "" ){ if( username == "" ){
throw new TeacherException("Username provided for modification is empty"); throw new TeacherException("Username provided for modification is empty");
} }
iTeacherServ.modifyUsername(tt,username); teacherServ.modifyUsername(tt,username);
return EntityModel.of(tt, return EntityModel.of(tt,
linkTo(methodOn(TeacherController.class).modifyTeachUsername(username,tt)).withSelfRel(), linkTo(methodOn(TeacherController.class).modifyTeachUsername(username,tt)).withSelfRel(),
linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all"));
} }
@DeleteMapping( value = "delete") @DeleteMapping( value = "delete")
public @ResponseBody EntityModel<List<Teacher>> deleteTeacher(Integer id){ public @ResponseBody EntityModel<List<Teacher>> 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).deleteTeacher(id)).withSelfRel(),
linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all")); linkTo(methodOn(TeacherController.class).getAllTeacher()).withRel("all"));
} }

@ -3,16 +3,18 @@ package SAE.ApiREST.WebService.model;
import java.time.LocalDate; import java.time.LocalDate;
import jakarta.persistence.Entity; import jakarta.persistence.*;
import jakarta.persistence.GeneratedValue; import lombok.*;
import jakarta.persistence.GenerationType;
import jakarta.persistence.Id;
@Entity @Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Article { public class Article {
@Id @Id
@GeneratedValue(strategy = GenerationType.AUTO) @GeneratedValue(strategy = GenerationType.AUTO)
Integer id; Integer id;
String title; String title;
String URL; String URL;
@ -22,80 +24,5 @@ public class Article {
Integer type; Integer type;
// ArrayList<Keyword> keywords = new ArrayList<>(); // ArrayList<Keyword> keywords = new ArrayList<>();
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;
this.datePublished = datePublished;
this.isVisible = visibility;
this.type = type;
}
public Integer getId() {
return this.id;
}
public void setId(Integer id) {
this.id = id;
}
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<Keyword> getKeywords() {
return this.keywords;
}
public void setKeywords(List<Keyword> keywords) {
this.keywords = keywords;
}
*/
} }

@ -1,70 +1,26 @@
package SAE.ApiREST.WebService.model; package SAE.ApiREST.WebService.model;
import jakarta.persistence.*; import jakarta.persistence.*;
import lombok.*;
import org.hibernate.annotations.Cascade;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@Entity @Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Collect { public class Collect {
@Id @Id
@GeneratedValue(strategy= GenerationType.AUTO) @GeneratedValue(strategy= GenerationType.AUTO)
private final long isbn = 0; private final long isbn = 0;
@Column(name = "articles")
@JoinColumn(name = "articles") @OneToMany(cascade = CascadeType.DETACH)
private ArrayList<Article> articles; private ArrayList<Article> articles;
@Column(name = "name") @Column(name = "name")
private String name; private String name;
@Column(name = "teacher") @JoinColumn(name = "teacher") @ManyToOne
private Teacher teacher; private Teacher teacher;
public Collect(String name, Teacher teacher){
this.name = name;
this.teacher = teacher;
this.articles = new ArrayList<Article>();
}
public Collect() {
}
// region Article
public long getId(){
return isbn;
}
// endregion
// region Article
public List<Article> getAllArticles(){
return articles;
}
// region addArticle
public void addArticle(Article article){
if(!this.articles.contains(article)){
this.articles.add(article);
}
}
public void addArticles(List<Article> articles){
for(Article article : articles){
addArticle(article);
}
}
// endregion
// region removeArticle
public void removeArticle(Article article){
this.articles.remove(article);
}
public void removeArticles(List<Article> articles){
this.articles.removeAll(articles);
}
// endregion
// endregion
// region name
public String getName(){
return name;
}
public void setName(String name){
this.name = name;
}
// endregion
} }

@ -1,60 +1,23 @@
package SAE.ApiREST.WebService.model; package SAE.ApiREST.WebService.model;
import jakarta.persistence.Entity; import jakarta.persistence.*;
import jakarta.persistence.Id; import lombok.*;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.format.DateTimeFormatter; import java.time.format.DateTimeFormatter;
import java.util.Date; import java.util.Date;
@Entity @Entity
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Teacher { public class Teacher {
@Id @Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Integer id; private Integer id;
private LocalDate date; private LocalDate date;
private String mail; private String mail;
private String username; private String username;
public Teacher() {
}
public Teacher(Integer id, String date, String mail, String username) {
this.id = id;
this.date = LocalDate.parse(date, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
this.mail = mail;
this.username = username;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public LocalDate getDate() {
return date;
}
public void setDate(String date) {
this.date = LocalDate.parse(date, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
}
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;
}
} }

@ -0,0 +1,4 @@
package SAE.ApiREST.WebService.repository;
public interface IArticleRepository {
}

@ -0,0 +1,4 @@
package SAE.ApiREST.WebService.repository;
public interface ICollectRepository {
}

@ -0,0 +1,19 @@
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
public interface ITeacherRepository extends JpaRepository< Teacher, Integer> {
Teacher findByusername(String username);
Teacher findBymail(String mail);
}

@ -7,18 +7,18 @@ import SAE.ApiREST.WebService.model.Article;
public interface IArticleService { public interface IArticleService {
// region GET // region GET
public List<Article> getAllArticles(); List<Article> getAllArticles();
Article getArticlesById(Integer id); Article getArticlesById(Integer id);
public List<Article> getArticlesByTitle(String title); List<Article> getArticlesByTitle(String title);
public List<Article> getArticlesByType(Integer type); List<Article> getArticlesByType(Integer type);
public List<Article> getVisibleArticles(); List<Article> getVisibleArticles();
public List<Article> getInvisibleArticles(); List<Article> getInvisibleArticles();
public List<Article> getArticlesAddedBefore(String dateAdded); List<Article> getArticlesAddedBefore(String dateAdded);
public List<Article> getArticlesAddedAfter(String dateAdded); List<Article> getArticlesAddedAfter(String dateAdded);
public List<Article> getArticlesAddedBetween(String beginning, String end); List<Article> getArticlesAddedBetween(String beginning, String end);
public List<Article> getArticlesPublishedBefore(String datePublished); List<Article> getArticlesPublishedBefore(String datePublished);
public List<Article> getArticlesPublishedAfter(String datePublished); List<Article> getArticlesPublishedAfter(String datePublished);
public List<Article> getArticlesPublishedBetween(String beginning, String end); List<Article> getArticlesPublishedBetween(String beginning, String end);
// endregion // endregion
} }

@ -5,17 +5,17 @@ import SAE.ApiREST.WebService.model.Article;
import java.util.List; import java.util.List;
public interface ICollectionService{ public interface ICollectionService{
public List<Collect> getAllCollections(); List<Collect> getAllCollections();
public Collect getCollectionById(long isbn); Collect getCollectionById(long isbn);
public List<Collect> getAllCollectionsByName(String name); List<Collect> getAllCollectionsByName(String name);
public void deleteColletionById(long isbn); void deleteColletionById(long isbn);
public void deleteColletionByName(String name); void deleteColletionByName(String name);
public void deleteAllColletionByName(String name); void deleteAllColletionByName(String name);
public void addCollection(Collect collection); void addCollection(Collect collection);
public void addCollections(List<Collect> collection); void addCollections(List<Collect> collection);
public void modifyCollectionName(Collect collection, String name); void modifyCollectionName(Collect collection, String name);
public void modifyCollectionNameById(long isbn, String name); void modifyCollectionNameById(long isbn, String name);
public List<Article> getAllArticles(Collect collection); List<Article> getAllArticles(Collect collection);
public void addArticle(Collect collection, Article article); void addArticle(Collect collection, Article article);
public void deleteArticle(Collect collection, Article article); void deleteArticle(Collect collection, Article article);
} }

@ -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<Teacher> getAllTeacher();
public Teacher getTeacherById(Integer id);
public Teacher getTeacherByUsername(String username);
public Teacher getTeacherByMail(String mail);
public Teacher getTeacherByDate(String date);
public List<Teacher> addTeacher(Teacher t);
public List<Teacher> deleteTeacher(Integer id);
public Response modifyUsername(Teacher t, String newUsername);
}

@ -17,15 +17,15 @@ public class StubArticleService implements IArticleService {
public List<Article> getAllArticles() { public List<Article> getAllArticles() {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(null,
"toi", "toi",
"azezeaea", "azezeaea",
LocalDate.now().minusMonths(1), LocalDate.now().minusMonths(1),
LocalDate.now().minusMonths(2), LocalDate.now().minusMonths(2),
true, true,
1) 1)
); );
articles.add(new Article( articles.add(new Article(null,
"moi", "moi",
"zaeaeaeazeza", "zaeaeaeazeza",
LocalDate.now().minusMonths(2), LocalDate.now().minusMonths(2),
@ -33,7 +33,7 @@ public class StubArticleService implements IArticleService {
false, false,
1) 1)
); );
articles.add(new Article( articles.add(new Article(null,
"eux", "eux",
"erfdhdh", "erfdhdh",
LocalDate.now().minusMonths(3), LocalDate.now().minusMonths(3),
@ -41,7 +41,7 @@ public class StubArticleService implements IArticleService {
true, true,
1) 1)
); );
articles.add(new Article( articles.add(new Article(null,
"tout ceux qui le veulent", "tout ceux qui le veulent",
"azersdfgg", "azersdfgg",
LocalDate.now().minusMonths(4), LocalDate.now().minusMonths(4),
@ -55,7 +55,7 @@ public class StubArticleService implements IArticleService {
@Override @Override
public Article getArticlesById(Integer id) { public Article getArticlesById(Integer id) {
return new Article( return new Article(1,
"azeaeaze", "azeaeaze",
"azezeaea", "azezeaea",
LocalDate.now().minusMonths(1), LocalDate.now().minusMonths(1),
@ -68,7 +68,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getArticlesByTitle(String title) { public List<Article> getArticlesByTitle(String title) {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(1,
title, title,
"azezeaea", "azezeaea",
LocalDate.now().minusMonths(1), LocalDate.now().minusMonths(1),
@ -84,7 +84,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getArticlesByType(Integer type) { public List<Article> getArticlesByType(Integer type) {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(1,
"aeazeazeaz", "aeazeazeaz",
"azezeaea", "azezeaea",
LocalDate.now().minusMonths(1), LocalDate.now().minusMonths(1),
@ -100,7 +100,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getVisibleArticles() { public List<Article> getVisibleArticles() {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(1,
"toi", "toi",
"azezeaea", "azezeaea",
LocalDate.now().minusMonths(1), LocalDate.now().minusMonths(1),
@ -116,7 +116,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getInvisibleArticles() { public List<Article> getInvisibleArticles() {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(1,
"toi", "toi",
"azezeaea", "azezeaea",
LocalDate.now().minusMonths(1), LocalDate.now().minusMonths(1),
@ -132,7 +132,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getArticlesAddedBefore(String dateAdded) { public List<Article> getArticlesAddedBefore(String dateAdded) {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(null,
"toi", "toi",
"azezeaea", "azezeaea",
LocalDate.parse(dateAdded, DateTimeFormatter.ISO_DATE).minusMonths(1), LocalDate.parse(dateAdded, DateTimeFormatter.ISO_DATE).minusMonths(1),
@ -148,7 +148,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getArticlesAddedAfter(String dateAdded) { public List<Article> getArticlesAddedAfter(String dateAdded) {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(null,
"toi", "toi",
"azezeaea", "azezeaea",
LocalDate.parse(dateAdded, DateTimeFormatter.ISO_DATE).plusMonths(1), LocalDate.parse(dateAdded, DateTimeFormatter.ISO_DATE).plusMonths(1),
@ -164,7 +164,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getArticlesAddedBetween(String beginning, String end) { public List<Article> getArticlesAddedBetween(String beginning, String end) {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(null,
"toi", "toi",
"azezeaea", "azezeaea",
LocalDate.parse(beginning, DateTimeFormatter.ISO_DATE), LocalDate.parse(beginning, DateTimeFormatter.ISO_DATE),
@ -180,7 +180,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getArticlesPublishedBefore(String datePublished) { public List<Article> getArticlesPublishedBefore(String datePublished) {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(null,
"toi", "toi",
"azezeaea", "azezeaea",
LocalDate.now().minusMonths(1), LocalDate.now().minusMonths(1),
@ -196,7 +196,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getArticlesPublishedAfter(String datePublished) { public List<Article> getArticlesPublishedAfter(String datePublished) {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(null,
"toi", "toi",
"azezeaea", "azezeaea",
LocalDate.now().minusMonths(1), LocalDate.now().minusMonths(1),
@ -212,7 +212,7 @@ public class StubArticleService implements IArticleService {
public List<Article> getArticlesPublishedBetween(String beginning, String end) { public List<Article> getArticlesPublishedBetween(String beginning, String end) {
List<Article> articles = new ArrayList<>(); List<Article> articles = new ArrayList<>();
articles.add(new Article( articles.add(new Article(null,
"toi", "toi",
"azezeaea", "azezeaea",
LocalDate.now().minusMonths(1), LocalDate.now().minusMonths(1),

@ -1,4 +1,5 @@
package SAE.ApiREST.WebService.service; package SAE.ApiREST.WebService.service;
import SAE.ApiREST.WebService.controller.ArticleControler;
import SAE.ApiREST.WebService.model.Collect; import SAE.ApiREST.WebService.model.Collect;
import java.util.ArrayList; import java.util.ArrayList;
@ -19,7 +20,7 @@ public class StubCollectionService implements ICollectionService {
// region GET // region GET
public Collect getCollectionById(long isbn){ public Collect getCollectionById(long isbn){
for(Collect collection : this.collections){ for(Collect collection : this.collections){
if(collection.getId() == isbn) { if(collection.getIsbn() == isbn) {
return collection; return collection;
} }
} }
@ -76,14 +77,16 @@ public class StubCollectionService implements ICollectionService {
// endregion // endregion
// region Article // region Article
public List<Article> getAllArticles(Collect collect){ public List<Article> getAllArticles(Collect collect)
return collect.getAllArticles(); {
return collect.getArticles();
} }
public void addArticle(Collect collect, Article article){ public void addArticle(Collect collect, Article article){
collect.addArticle(article); List<Article> lA = collect.getArticles();
lA.add(article);
collect.setArticles((ArrayList<Article>) lA);
} }
public void deleteArticle(Collect collect, Article article){ public void deleteArticle(Collect collect, Article article){
collect.removeArticle(article); collect.getArticles().remove(article);
} }
// endregion
} }

@ -0,0 +1,77 @@
package SAE.ApiREST.WebService.service;
import SAE.ApiREST.WebService.Response;
import SAE.ApiREST.WebService.model.Teacher;
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 {
private final ITeacherRepository teachRep;
public TeacherService(ITeacherRepository teachRep) {
this.teachRep = teachRep;
}
public List<Teacher> getAllTeacher() {
return teachRep.findAll();
}
public Teacher getTeacherById(Integer id) {
return teachRep.getReferenceById(id);
}
public Teacher getTeacherByUsername(String username) {
return teachRep.findByusername(username);
}
public Teacher getTeacherByMail(String mail) {
return teachRep.findBymail(mail);
}
/*
public Teacher getTeacherByDate(String date) {
LocalDate d = LocalDate.parse(date, DateTimeFormatter.ofPattern("dd-MM-yyyy"));
return teachRep.findByDate(d);
}*/
public List<Teacher> addTeacher(Teacher t) {
List<Teacher> lT = getAllTeacher();
lT.add(t);
return lT;
}
public List<Teacher> deleteTeacher(Integer id) {
List<Teacher> lT = getAllTeacher();
lT.remove(getTeacherById(id));
return lT;
}
public Response modifyUsername(Teacher t, String newUsername) {
t.setUsername(newUsername);
return new Response(t.getId(), String.format("Username changed for {id}", t.getId()));
}
}

@ -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<Teacher> getAllTeacher() {
List<Teacher> allTeacher = new ArrayList<Teacher>();
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<Teacher> addTeacher(Teacher t) {
List<Teacher> lteach = new ArrayList<Teacher>();
lteach.add(t);
return lteach;
}
@Override
public List<Teacher> deleteTeacher(Integer id) {
List<Teacher> allTeacher = new ArrayList<Teacher>();
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()));
}
}

@ -1 +1,24 @@
/*
#Todo adapter a une de nos BD choisir le langage bd
spring.datasource.url=nomBD:mysql://localhost:8889/XXXXXX?createDatabaseIfNotExist=true
spring.datasource.username=test
spring.datasource.password=test
spring.jpa.open-in-view=false
# Hibernate properties
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQLDialect
spring.jpa.hibernate.ddl-auto=update
spring.jpa.generate-ddl=true
#spring.jpa.properties.hibernate.enable_lazy_load_no_trans=true
# Logging SQL statements (optional, but useful for debugging)
spring.jpa.show-sql=true
*/
spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driverClassName=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=password
spring.jpa.database-platform=org.hibernate.dialect.H2Dialect

Loading…
Cancel
Save