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;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.Cascade;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class Collect {
|
||||
@Id
|
||||
@GeneratedValue(strategy= GenerationType.AUTO)
|
||||
private final long isbn = 0;
|
||||
@Column(name = "articles")
|
||||
|
||||
@JoinColumn(name = "articles") @OneToMany(cascade = CascadeType.DETACH)
|
||||
private ArrayList<Article> articles;
|
||||
@Column(name = "name")
|
||||
private String name;
|
||||
@Column(name = "teacher")
|
||||
@JoinColumn(name = "teacher") @ManyToOne
|
||||
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;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import java.util.Date;
|
||||
|
||||
@Entity
|
||||
@Getter
|
||||
@Setter
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
|
||||
public class Teacher {
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
private Integer id;
|
||||
private LocalDate date;
|
||||
private String mail;
|
||||
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