backend-api #6
@@ -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;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					package enseirb.myinpulse.model;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					public enum ProjectDecisionValue {
 | 
				
			||||||
 | 
					    PENDING,
 | 
				
			||||||
 | 
					    ACTIVE,
 | 
				
			||||||
 | 
					    ENDED,
 | 
				
			||||||
 | 
					    ABORTED
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
@@ -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);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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,13 +48,15 @@ public class AdminApiService {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    // TODO: test
 | 
					    // TODO: test
 | 
				
			||||||
    public void validateProject(ProjectDecision decision) {
 | 
					    public void validateProject(ProjectDecision decision) {
 | 
				
			||||||
        projectService.updateProject(
 | 
					        if (decision.isAccepted == 1) {
 | 
				
			||||||
                decision.projectId,
 | 
					            projectService.updateProject(
 | 
				
			||||||
                null,
 | 
					                    decision.projectId,
 | 
				
			||||||
                null,
 | 
					                    null,
 | 
				
			||||||
                null,
 | 
					                    null,
 | 
				
			||||||
                "ACTIVE",
 | 
					                    null,
 | 
				
			||||||
                this.administratorService.getAdministratorById(decision.projectId));
 | 
					                    ACTIVE,
 | 
				
			||||||
 | 
					                    this.administratorService.getAdministratorById(decision.projectId));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: solve todo + test
 | 
					    // TODO: solve todo + test
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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) {
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user