backend-api #6

Merged
piair merged 107 commits from backend-api into main 2025-03-26 19:04:09 +01:00
10 changed files with 206 additions and 18 deletions
Showing only changes of commit c94d3654ce - Show all commits

View File

@ -39,4 +39,28 @@ public class Administrator extends User {
String phoneNumber) { String phoneNumber) {
super(null, userSurname, username, primaryMail, secondaryMail, phoneNumber); super(null, userSurname, username, primaryMail, secondaryMail, phoneNumber);
} }
public List<Project> getListProject() {
return listProject;
}
public void updateListProject(Project project) {
listProject.add(project);
}
public List<Annotation> getListAnnotation() {
return listAnnotation;
}
public void updateListAnnotation(Annotation annotation) {
listAnnotation.add(annotation);
}
public MakeAppointment getMakeAppointment() {
return makeAppointment;
}
public void setMakeAppointment(MakeAppointment makeAppointment) {
this.makeAppointment = makeAppointment;
}
} }

View File

@ -34,4 +34,28 @@ public class Annotation {
public void setComment(String comment) { public void setComment(String comment) {
this.comment = comment; this.comment = comment;
} }
public Long getIdAnnotation() {
return idAnnotation;
}
public void setIdAnnotation(Long idAnnotation) {
this.idAnnotation = idAnnotation;
}
public SectionCell getSectionCellAnnotation() {
return sectionCellAnnotation;
}
public void setSectionCellAnnotation(SectionCell sectionCellAnnotation) {
this.sectionCellAnnotation = sectionCellAnnotation;
}
public Administrator getAdministratorAnnotation() {
return administratorAnnotation;
}
public void setAdministratorAnnotation(Administrator administratorAnnotation) {
this.administratorAnnotation = administratorAnnotation;
}
} }

View File

@ -112,6 +112,10 @@ public class Appointment {
return listSectionCell; return listSectionCell;
} }
public void updateListSectionCell(SectionCell sectionCell) {
listSectionCell.add(sectionCell);
}
public Report getAppointmentReport() { public Report getAppointmentReport() {
return report; return report;
} }

View File

@ -52,6 +52,28 @@ public class Entrepreneur extends User {
this.sneeStatus = sneeStatus; this.sneeStatus = sneeStatus;
} }
public Entrepreneur(
Long idUser,
String userSurname,
String userName,
String primaryMail,
String secondaryMail,
String phoneNumber,
String school,
String course,
boolean sneeStatus,
Project projectParticipation,
Project projectProposed,
MakeAppointment makeAppointment) {
super(idUser, userSurname, userName, primaryMail, secondaryMail, phoneNumber);
this.school = school;
this.course = course;
this.sneeStatus = sneeStatus;
this.projectParticipation = projectParticipation;
this.projectProposed = projectProposed;
this.makeAppointment = makeAppointment;
}
public String getSchool() { public String getSchool() {
return school; return school;
} }
@ -79,4 +101,24 @@ public class Entrepreneur extends User {
public Project getProjectParticipation() { public Project getProjectParticipation() {
return projectParticipation; return projectParticipation;
} }
public void setProjectParticipation(Project projectParticipation) {
this.projectParticipation = projectParticipation;
}
public Project getProjectProposed() {
return projectProposed;
}
public void setProjectProposed(Project projectProposed) {
this.projectProposed = projectProposed;
}
public MakeAppointment getMakeAppointment() {
return makeAppointment;
}
public void setMakeAppointment(MakeAppointment makeAppointment) {
this.makeAppointment = makeAppointment;
}
} }

View File

@ -51,6 +51,21 @@ public class Project {
this.projectAdministrator = projectAdministrator; this.projectAdministrator = projectAdministrator;
} }
public Project(
String projectName,
byte[] logo,
LocalDate creationDate,
ProjectDecisionValue projectStatus,
Administrator projectAdministrator,
Entrepreneur entrepreneurProposed) {
this.projectName = projectName;
this.logo = logo;
this.creationDate = creationDate;
this.projectStatus = projectStatus;
this.projectAdministrator = projectAdministrator;
this.entrepreneurProposed = entrepreneurProposed;
}
public Long getIdProject() { public Long getIdProject() {
return idProject; return idProject;
} }
@ -91,11 +106,35 @@ public class Project {
this.projectStatus = projectStatus; this.projectStatus = projectStatus;
} }
public Administrator getAdministrator() { public List<Entrepreneur> getListEntrepreneurParticipation() {
return this.projectAdministrator; return listEntrepreneurParticipation;
} }
public void setAdministrator(Administrator administrator) { public void updateListEntrepreneurParticipation(Entrepreneur projectParticipant) {
this.projectAdministrator = administrator; listEntrepreneurParticipation.add(projectParticipant);
}
public List<SectionCell> getListSectionCell() {
return listSectionCell;
}
public void updateListSectionCell(SectionCell projectSectionCell) {
listSectionCell.add(projectSectionCell);
}
public Administrator getProjectAdministrator() {
return projectAdministrator;
}
public void setProjectAdministrator(Administrator projectAdministrator) {
this.projectAdministrator = projectAdministrator;
}
public Entrepreneur getEntrepreneurProposed() {
return entrepreneurProposed;
}
public void setEntrepreneurProposed(Entrepreneur entrepreneurProposed) {
this.entrepreneurProposed = entrepreneurProposed;
} }
} }

View File

@ -11,7 +11,7 @@ import java.util.List;
public class SectionCell { public class SectionCell {
@ManyToMany(mappedBy = "listSectionCell") @ManyToMany(mappedBy = "listSectionCell")
private final List<Appointment> appointment = new ArrayList<>(); private final List<Appointment> listAppointment = new ArrayList<>();
@OneToMany(mappedBy = "sectionCellAnnotation", fetch = FetchType.LAZY, orphanRemoval = true) @OneToMany(mappedBy = "sectionCellAnnotation", fetch = FetchType.LAZY, orphanRemoval = true)
private final List<Annotation> listAnnotation = new ArrayList<>(); private final List<Annotation> listAnnotation = new ArrayList<>();
@ -39,11 +39,13 @@ public class SectionCell {
Long idSectionCell, Long idSectionCell,
Long sectionId, Long sectionId,
String contentSectionCell, String contentSectionCell,
LocalDateTime modificationDate) { LocalDateTime modificationDate,
Project projectSectionCell) {
this.idSectionCell = idSectionCell; this.idSectionCell = idSectionCell;
this.sectionId = sectionId; this.sectionId = sectionId;
this.contentSectionCell = contentSectionCell; this.contentSectionCell = contentSectionCell;
this.modificationDate = modificationDate; this.modificationDate = modificationDate;
this.projectSectionCell = projectSectionCell;
} }
public Long getIdSectionCell() { public Long getIdSectionCell() {
@ -83,6 +85,26 @@ public class SectionCell {
} }
public List<Appointment> getAppointmentSectionCell() { public List<Appointment> getAppointmentSectionCell() {
return appointment; return listAppointment;
}
public void updateAppointmentSectionCell(Appointment appointment) {
listAppointment.add(appointment);
}
public List<Annotation> getListAnnotation() {
return listAnnotation;
}
public void updateListAnnotation(Annotation annotation) {
listAnnotation.add(annotation);
}
public void setSectionId(long sectionId) {
this.sectionId = sectionId;
}
public void setProjectSectionCell(Project projectSectionCell) {
this.projectSectionCell = projectSectionCell;
} }
} }

View File

@ -5,14 +5,13 @@ import static enseirb.myinpulse.model.ProjectDecisionValue.REJECTED;
import enseirb.myinpulse.model.*; import enseirb.myinpulse.model.*;
import enseirb.myinpulse.service.database.AdministratorService; import enseirb.myinpulse.service.database.AdministratorService;
import enseirb.myinpulse.service.database.ProjectService;
import enseirb.myinpulse.service.database.UserService;
import enseirb.myinpulse.service.database.AppointmentService; import enseirb.myinpulse.service.database.AppointmentService;
import enseirb.myinpulse.service.database.ProjectService;
import enseirb.myinpulse.service.database.ReportService; import enseirb.myinpulse.service.database.ReportService;
import enseirb.myinpulse.service.database.UserService;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus; import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -86,8 +85,22 @@ public class AdminApiService {
if (e.getStatusCode() == HttpStatus.CONFLICT) { if (e.getStatusCode() == HttpStatus.CONFLICT) {
throw new ResponseStatusException(HttpStatus.CONFLICT, "Project already exists"); throw new ResponseStatusException(HttpStatus.CONFLICT, "Project already exists");
} }
projectService.addNewProject(project);
} }
Project newProject = projectService.addNewProject(project);
newProject.getProjectAdministrator().updateListProject(newProject);
newProject.getEntrepreneurProposed().setProjectProposed(newProject);
newProject
.getListEntrepreneurParticipation()
.forEach(
participation -> {
participation.setProjectParticipation(newProject);
});
newProject
.getListSectionCell()
.forEach(
sectionCell -> {
sectionCell.setProjectSectionCell(newProject);
});
} }
public void createAppointmentReport(long appointmentId, Report report, String mail) { public void createAppointmentReport(long appointmentId, Report report, String mail) {

View File

@ -107,7 +107,20 @@ public class EntrepreneurApiService {
mail, mail,
sectionCell.getIdSectionCell(), sectionCell.getIdSectionCell(),
this.sectionCellService.getProjectId(sectionCell.getIdSectionCell())); this.sectionCellService.getProjectId(sectionCell.getIdSectionCell()));
sectionCellService.addNewSectionCell(sectionCell); SectionCell newSectionCell = sectionCellService.addNewSectionCell(sectionCell);
newSectionCell.getProjectSectionCell().updateListSectionCell(newSectionCell);
newSectionCell
.getAppointmentSectionCell()
.forEach(
appointment -> {
appointment.updateListSectionCell(newSectionCell);
});
newSectionCell
.getListAnnotation()
.forEach(
annotation -> {
annotation.setSectionCellAnnotation(newSectionCell);
});
} }
public void requestNewProject(Project project, String mail) { public void requestNewProject(Project project, String mail) {

View File

@ -1,5 +1,8 @@
package enseirb.myinpulse.service; package enseirb.myinpulse.service;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfWriter;
import enseirb.myinpulse.model.*; import enseirb.myinpulse.model.*;
import enseirb.myinpulse.service.database.*; import enseirb.myinpulse.service.database.*;
@ -10,9 +13,6 @@ import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.server.ResponseStatusException; import org.springframework.web.server.ResponseStatusException;
import com.itextpdf.text.*;
import com.itextpdf.text.pdf.PdfWriter;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.time.LocalDateTime; import java.time.LocalDateTime;
@ -92,7 +92,7 @@ public class SharedApiService {
HttpStatus.UNAUTHORIZED, "You're not allowed to check this project"); HttpStatus.UNAUTHORIZED, "You're not allowed to check this project");
} }
Project project = this.projectService.getProjectById(projectId); Project project = this.projectService.getProjectById(projectId);
return project.getAdministrator(); return project.getProjectAdministrator();
} }
// TODO // TODO
@ -221,6 +221,13 @@ public class SharedApiService {
HttpStatus.UNAUTHORIZED, "You're not allowed to check this project"); HttpStatus.UNAUTHORIZED, "You're not allowed to check this project");
} }
logger.info("User {} tried to create an appointment for project {}", mail, projectId); logger.info("User {} tried to create an appointment for project {}", mail, projectId);
this.appointmentService.addNewAppointment(appointment); Appointment newAppointment = this.appointmentService.addNewAppointment(appointment);
newAppointment
.getAppointmentListSectionCell()
.forEach(
sectionCell -> {
sectionCell.updateAppointmentSectionCell(newAppointment);
});
newAppointment.getAppointmentReport().setAppointmentReport(newAppointment);
} }
} }

View File

@ -91,7 +91,7 @@ public class ProjectService {
} }
if (administrator != null) { if (administrator != null) {
project.get().setAdministrator(administrator); project.get().setProjectAdministrator(administrator);
} }
return this.projectRepository.save(project.get()); return this.projectRepository.save(project.get());