backend-api #6

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

View File

@ -26,8 +26,7 @@ public class Project {
private byte[] logo; private byte[] logo;
private LocalDate creationDate; private LocalDate creationDate;
@Column(length = 255) @Column private ProjectDecisionValue projectStatus;
private String projectStatus;
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "idAdministrator") @JoinColumn(name = "idAdministrator")
@ -42,11 +41,12 @@ public class Project {
String projectName, String projectName,
byte[] logo, byte[] logo,
LocalDate creationDate, LocalDate creationDate,
String projectStatus, ProjectDecisionValue projectStatus,
Administrator projectAdministrator) { Administrator projectAdministrator) {
this.projectName = projectName; this.projectName = projectName;
this.logo = logo; this.logo = logo;
this.creationDate = creationDate; this.creationDate = creationDate;
// this.projectStatus = (long) projectStatus.ordinal();
this.projectStatus = projectStatus; this.projectStatus = projectStatus;
this.projectAdministrator = projectAdministrator; this.projectAdministrator = projectAdministrator;
} }
@ -83,11 +83,11 @@ public class Project {
this.creationDate = creationDate; this.creationDate = creationDate;
} }
public String getProjectStatus() { public ProjectDecisionValue getProjectStatus() {
return projectStatus; return projectStatus;
} }
public void setProjectStatus(String projectStatus) { public void setProjectStatus(ProjectDecisionValue projectStatus) {
this.projectStatus = projectStatus; this.projectStatus = projectStatus;
} }

View File

@ -0,0 +1,8 @@
package enseirb.myinpulse.model;
public enum ProjectDecisionValue {
PENDING,
ACTIVE,
ENDED,
ABORTED
}

View File

@ -10,5 +10,5 @@ import org.springframework.data.rest.core.annotation.RepositoryRestResource;
public interface ProjectRepository extends JpaRepository<Project, Long> { public interface ProjectRepository extends JpaRepository<Project, Long> {
Iterable<Project> findByProjectAdministrator(Administrator administrator); Iterable<Project> findByProjectAdministrator(Administrator administrator);
Iterable<Project> findByProjectStatus(String status); Iterable<Project> findByProjectStatus(Long status);
} }

View File

@ -1,5 +1,7 @@
package enseirb.myinpulse.service; package enseirb.myinpulse.service;
import static enseirb.myinpulse.model.ProjectDecisionValue.ACTIVE;
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.ProjectService;
@ -27,7 +29,7 @@ public class AdminApiService {
this.administratorService = administratorService; this.administratorService = administratorService;
} }
// TODO: test // TODO: check if test are sufficient
public Iterable<Project> getProjectsOfAdmin(String email) { public Iterable<Project> getProjectsOfAdmin(String email) {
return projectService.getProjectsByAdminId( return projectService.getProjectsByAdminId(
administratorService.getAdministratorById( administratorService.getAdministratorById(
@ -46,14 +48,16 @@ public class AdminApiService {
// TODO: test // TODO: test
public void validateProject(ProjectDecision decision) { public void validateProject(ProjectDecision decision) {
if (decision.isAccepted == 1) {
projectService.updateProject( projectService.updateProject(
decision.projectId, decision.projectId,
null, null,
null, null,
null, null,
"ACTIVE", ACTIVE,
this.administratorService.getAdministratorById(decision.projectId)); this.administratorService.getAdministratorById(decision.projectId));
} }
}
// TODO: solve todo + test // TODO: solve todo + test
public void addNewProject(Project project) { public void addNewProject(Project project) {

View File

@ -1,5 +1,7 @@
package enseirb.myinpulse.service; package enseirb.myinpulse.service;
import static enseirb.myinpulse.model.ProjectDecisionValue.PENDING;
import enseirb.myinpulse.model.Project; import enseirb.myinpulse.model.Project;
import enseirb.myinpulse.model.SectionCell; import enseirb.myinpulse.model.SectionCell;
import enseirb.myinpulse.service.database.ProjectService; import enseirb.myinpulse.service.database.ProjectService;
@ -114,7 +116,7 @@ public class EntrepreneurApiService {
throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Le projet fourni est vide"); throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Le projet fourni est vide");
} }
logger.info("User {} created a new project with id {}", mail, project.getIdProject()); logger.info("User {} created a new project with id {}", mail, project.getIdProject());
project.setProjectStatus("PENDING"); project.setProjectStatus(PENDING);
projectService.addNewProject(project); projectService.addNewProject(project);
} }
} }

View File

@ -1,7 +1,10 @@
package enseirb.myinpulse.service.database; package enseirb.myinpulse.service.database;
import static enseirb.myinpulse.model.ProjectDecisionValue.PENDING;
import enseirb.myinpulse.model.Administrator; import enseirb.myinpulse.model.Administrator;
import enseirb.myinpulse.model.Project; import enseirb.myinpulse.model.Project;
import enseirb.myinpulse.model.ProjectDecisionValue;
import enseirb.myinpulse.repository.ProjectRepository; import enseirb.myinpulse.repository.ProjectRepository;
import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.LogManager;
@ -54,7 +57,7 @@ public class ProjectService {
String projectName, String projectName,
byte[] logo, byte[] logo,
LocalDate creationDate, LocalDate creationDate,
String projectStatus, ProjectDecisionValue projectStatus,
Administrator administrator) { Administrator administrator) {
Optional<Project> project = this.projectRepository.findById(id); Optional<Project> project = this.projectRepository.findById(id);
@ -76,11 +79,14 @@ public class ProjectService {
} }
if (projectStatus != null) { if (projectStatus != null) {
// TODO: check if this is really useful
/*
if (!validateStatus(projectStatus)) { if (!validateStatus(projectStatus)) {
logger.error("updateProjectStatus: Invalid status {}", projectStatus); logger.error("updateProjectStatus: Invalid status {}", projectStatus);
throw new ResponseStatusException( throw new ResponseStatusException(
HttpStatus.NOT_ACCEPTABLE, "Ce status n'est pas accepté"); HttpStatus.NOT_ACCEPTABLE, "Ce status n'est pas accepté");
} }
*/
project.get().setProjectStatus(projectStatus); project.get().setProjectStatus(projectStatus);
} }
@ -96,7 +102,7 @@ public class ProjectService {
} }
public Iterable<Project> getPendingProjects() { public Iterable<Project> getPendingProjects() {
return this.projectRepository.findByProjectStatus("PENDING"); return this.projectRepository.findByProjectStatus((long) PENDING.ordinal());
} }
public void deleteProjectById(Long id) { public void deleteProjectById(Long id) {