Compare commits
4 Commits
Dev
...
feature/Pr
Author | SHA1 | Date |
---|---|---|
|
56158fa2ee | 1 year ago |
|
c999ea26af | 1 year ago |
|
5efc1f3057 | 1 year ago |
|
ecbe36b1ea | 1 year ago |
@ -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);
|
||||||
|
|
||||||
|
}
|
@ -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);
|
|
||||||
}
|
|
@ -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…
Reference in new issue