diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/model/Project.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/model/Project.java index ac1c5df..b745c6f 100644 --- a/MyINPulse-back/src/main/java/enseirb/myinpulse/model/Project.java +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/model/Project.java @@ -26,8 +26,7 @@ public class Project { private byte[] logo; private LocalDate creationDate; - @Column(length = 255) - private String projectStatus; + @Column private ProjectDecisionValue projectStatus; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "idAdministrator") @@ -42,11 +41,12 @@ public class Project { String projectName, byte[] logo, LocalDate creationDate, - String projectStatus, + ProjectDecisionValue projectStatus, Administrator projectAdministrator) { this.projectName = projectName; this.logo = logo; this.creationDate = creationDate; + // this.projectStatus = (long) projectStatus.ordinal(); this.projectStatus = projectStatus; this.projectAdministrator = projectAdministrator; } @@ -83,11 +83,11 @@ public class Project { this.creationDate = creationDate; } - public String getProjectStatus() { + public ProjectDecisionValue getProjectStatus() { return projectStatus; } - public void setProjectStatus(String projectStatus) { + public void setProjectStatus(ProjectDecisionValue projectStatus) { this.projectStatus = projectStatus; } diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/model/ProjectDecisionValue.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/model/ProjectDecisionValue.java new file mode 100644 index 0000000..ca38489 --- /dev/null +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/model/ProjectDecisionValue.java @@ -0,0 +1,8 @@ +package enseirb.myinpulse.model; + +public enum ProjectDecisionValue { + PENDING, + ACTIVE, + ENDED, + ABORTED +} diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/repository/ProjectRepository.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/repository/ProjectRepository.java index 2911655..0fc1b08 100644 --- a/MyINPulse-back/src/main/java/enseirb/myinpulse/repository/ProjectRepository.java +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/repository/ProjectRepository.java @@ -10,5 +10,5 @@ import org.springframework.data.rest.core.annotation.RepositoryRestResource; public interface ProjectRepository extends JpaRepository { Iterable findByProjectAdministrator(Administrator administrator); - Iterable findByProjectStatus(String status); + Iterable findByProjectStatus(Long status); } diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/service/AdminApiService.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/service/AdminApiService.java index 400c2b6..974754d 100644 --- a/MyINPulse-back/src/main/java/enseirb/myinpulse/service/AdminApiService.java +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/service/AdminApiService.java @@ -1,5 +1,7 @@ package enseirb.myinpulse.service; +import static enseirb.myinpulse.model.ProjectDecisionValue.ACTIVE; + import enseirb.myinpulse.model.*; import enseirb.myinpulse.service.database.AdministratorService; import enseirb.myinpulse.service.database.ProjectService; @@ -27,7 +29,7 @@ public class AdminApiService { this.administratorService = administratorService; } - // TODO: test + // TODO: check if test are sufficient public Iterable getProjectsOfAdmin(String email) { return projectService.getProjectsByAdminId( administratorService.getAdministratorById( @@ -46,13 +48,15 @@ public class AdminApiService { // TODO: test public void validateProject(ProjectDecision decision) { - projectService.updateProject( - decision.projectId, - null, - null, - null, - "ACTIVE", - this.administratorService.getAdministratorById(decision.projectId)); + if (decision.isAccepted == 1) { + projectService.updateProject( + decision.projectId, + null, + null, + null, + ACTIVE, + this.administratorService.getAdministratorById(decision.projectId)); + } } // TODO: solve todo + test diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/service/EntrepreneurApiService.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/service/EntrepreneurApiService.java index 61b16ab..f1d6260 100644 --- a/MyINPulse-back/src/main/java/enseirb/myinpulse/service/EntrepreneurApiService.java +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/service/EntrepreneurApiService.java @@ -1,5 +1,7 @@ package enseirb.myinpulse.service; +import static enseirb.myinpulse.model.ProjectDecisionValue.PENDING; + import enseirb.myinpulse.model.Project; import enseirb.myinpulse.model.SectionCell; import enseirb.myinpulse.service.database.ProjectService; @@ -114,7 +116,7 @@ public class EntrepreneurApiService { throw new ResponseStatusException(HttpStatus.BAD_REQUEST, "Le projet fourni est vide"); } logger.info("User {} created a new project with id {}", mail, project.getIdProject()); - project.setProjectStatus("PENDING"); + project.setProjectStatus(PENDING); projectService.addNewProject(project); } } diff --git a/MyINPulse-back/src/main/java/enseirb/myinpulse/service/database/ProjectService.java b/MyINPulse-back/src/main/java/enseirb/myinpulse/service/database/ProjectService.java index 10dc7e9..d851a43 100644 --- a/MyINPulse-back/src/main/java/enseirb/myinpulse/service/database/ProjectService.java +++ b/MyINPulse-back/src/main/java/enseirb/myinpulse/service/database/ProjectService.java @@ -1,7 +1,10 @@ package enseirb.myinpulse.service.database; +import static enseirb.myinpulse.model.ProjectDecisionValue.PENDING; + import enseirb.myinpulse.model.Administrator; import enseirb.myinpulse.model.Project; +import enseirb.myinpulse.model.ProjectDecisionValue; import enseirb.myinpulse.repository.ProjectRepository; import org.apache.logging.log4j.LogManager; @@ -54,7 +57,7 @@ public class ProjectService { String projectName, byte[] logo, LocalDate creationDate, - String projectStatus, + ProjectDecisionValue projectStatus, Administrator administrator) { Optional project = this.projectRepository.findById(id); @@ -76,11 +79,14 @@ public class ProjectService { } if (projectStatus != null) { + // TODO: check if this is really useful + /* if (!validateStatus(projectStatus)) { logger.error("updateProjectStatus: Invalid status {}", projectStatus); throw new ResponseStatusException( HttpStatus.NOT_ACCEPTABLE, "Ce status n'est pas accepté"); } + */ project.get().setProjectStatus(projectStatus); } @@ -96,7 +102,7 @@ public class ProjectService { } public Iterable getPendingProjects() { - return this.projectRepository.findByProjectStatus("PENDING"); + return this.projectRepository.findByProjectStatus((long) PENDING.ordinal()); } public void deleteProjectById(Long id) {