Compare commits
	
		
			9 Commits
		
	
	
		
			84b70f8f38
			...
			fix_cache
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 801ecb3817 | |||
| 
						 | 
					cc89d4c79f | ||
| adf9a93e2e | |||
| 
						 | 
					37d8bcc719 | ||
| ead11215ba | |||
| 
						 | 
					137bc84c21 | ||
| 
						 | 
					3c61fdca93 | ||
| 
						 | 
					5ee3755548 | ||
| 
						 | 
					52511dd4c4 | 
							
								
								
									
										24
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								Makefile
									
									
									
									
									
								
							@@ -19,8 +19,14 @@ front/MyINPulse-front/.installed:
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
vite: ./front/MyINPulse-front/.installed
 | 
					vite: ./front/MyINPulse-front/.installed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					keycloak: ./keycloak/.installed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dev-front: clean vite
 | 
					keycloak/.installed:
 | 
				
			||||||
 | 
						@echo "running one time install"
 | 
				
			||||||
 | 
						@cd keycloak/CAS && sudo sh build.sh
 | 
				
			||||||
 | 
						@touch ./keycloak/.installed
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					dev-front: clean vite keycloak
 | 
				
			||||||
	@cp config/frontdev.env front/MyINPulse-front/.env
 | 
						@cp config/frontdev.env front/MyINPulse-front/.env
 | 
				
			||||||
	@cp config/frontdev.env .env
 | 
						@cp config/frontdev.env .env
 | 
				
			||||||
	@cp config/frontdev.env MyINPulse-back/.env
 | 
						@cp config/frontdev.env MyINPulse-back/.env
 | 
				
			||||||
@@ -28,7 +34,7 @@ dev-front: clean vite
 | 
				
			|||||||
	@docker compose up -d --build
 | 
						@docker compose up -d --build
 | 
				
			||||||
	@cd ./front/MyINPulse-front/ && npm run dev
 | 
						@cd ./front/MyINPulse-front/ && npm run dev
 | 
				
			||||||
 | 
					
 | 
				
			||||||
prod: clean
 | 
					prod: clean keycloak
 | 
				
			||||||
	@cp config/prod.env front/MyINPulse-front/.env
 | 
						@cp config/prod.env front/MyINPulse-front/.env
 | 
				
			||||||
	@cp config/prod.env .env
 | 
						@cp config/prod.env .env
 | 
				
			||||||
	@cp config/prod.env .env
 | 
						@cp config/prod.env .env
 | 
				
			||||||
@@ -37,7 +43,7 @@ prod: clean
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
dev-back:
 | 
					dev-back: keycloak
 | 
				
			||||||
	@cp config/backdev.env front/MyINPulse-front/.env
 | 
						@cp config/backdev.env front/MyINPulse-front/.env
 | 
				
			||||||
	@cp config/backdev.env .env
 | 
						@cp config/backdev.env .env
 | 
				
			||||||
	@cp config/backdev.env MyINPulse-back/.env
 | 
						@cp config/backdev.env MyINPulse-back/.env
 | 
				
			||||||
@@ -46,7 +52,7 @@ dev-back:
 | 
				
			|||||||
	@echo "cd MyINPulse-back" && echo 'export $$(cat .env | xargs)'
 | 
						@echo "cd MyINPulse-back" && echo 'export $$(cat .env | xargs)'
 | 
				
			||||||
	@echo "./gradlew bootRun --args='--server.port=8081'"
 | 
						@echo "./gradlew bootRun --args='--server.port=8081'"
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
dev: clean vite
 | 
					dev: clean vite keycloak
 | 
				
			||||||
	@cp config/dev.env front/MyINPulse-front/.env
 | 
						@cp config/dev.env front/MyINPulse-front/.env
 | 
				
			||||||
	@cp config/dev.env .env
 | 
						@cp config/dev.env .env
 | 
				
			||||||
	@cp config/dev.env MyINPulse-back/.env
 | 
						@cp config/dev.env MyINPulse-back/.env
 | 
				
			||||||
@@ -55,3 +61,13 @@ dev: clean vite
 | 
				
			|||||||
	@echo "cd MyINPulse-back" && echo 'export $$(cat .env | xargs)'
 | 
						@echo "cd MyINPulse-back" && echo 'export $$(cat .env | xargs)'
 | 
				
			||||||
	@echo "./gradlew bootRun --args='--server.port=8081'"
 | 
						@echo "./gradlew bootRun --args='--server.port=8081'"
 | 
				
			||||||
	@cd ./front/MyINPulse-front/ && npm run dev &
 | 
						@cd ./front/MyINPulse-front/ && npm run dev &
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					test-back: clean keycloak
 | 
				
			||||||
 | 
						@cp config/dev.env front/MyINPulse-front/.env
 | 
				
			||||||
 | 
						@cp config/dev.env .env
 | 
				
			||||||
 | 
						@cp config/dev.env MyINPulse-back/.env
 | 
				
			||||||
 | 
						@cp config/dev.docker-compose.yaml docker-compose.yaml
 | 
				
			||||||
 | 
						@docker compose up -d --build
 | 
				
			||||||
 | 
						@echo "cd MyINPulse-back" && echo 'export $$(cat .env | xargs)'
 | 
				
			||||||
 | 
						@cd ./MyINPulse-back/ && ./gradlew test && ./gradlew jacocoTestReport
 | 
				
			||||||
 | 
						@firefox ./MyINPulse-back/build/jacocoHtml/index.html
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,7 @@
 | 
				
			|||||||
package enseirb.myinpulse.controller;
 | 
					package enseirb.myinpulse.controller;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import com.itextpdf.text.DocumentException;
 | 
					import com.itextpdf.text.DocumentException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import enseirb.myinpulse.model.*;
 | 
					import enseirb.myinpulse.model.*;
 | 
				
			||||||
import enseirb.myinpulse.service.SharedApiService;
 | 
					import enseirb.myinpulse.service.SharedApiService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -10,7 +11,8 @@ import org.springframework.security.core.annotation.AuthenticationPrincipal;
 | 
				
			|||||||
import org.springframework.security.oauth2.jwt.Jwt;
 | 
					import org.springframework.security.oauth2.jwt.Jwt;
 | 
				
			||||||
import org.springframework.web.bind.annotation.*;
 | 
					import org.springframework.web.bind.annotation.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.FileNotFoundException;
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.net.URISyntaxException;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@SpringBootApplication
 | 
					@SpringBootApplication
 | 
				
			||||||
@RestController
 | 
					@RestController
 | 
				
			||||||
@@ -83,10 +85,12 @@ public class SharedApi {
 | 
				
			|||||||
            @PathVariable int appointmentId, @AuthenticationPrincipal Jwt principal) {
 | 
					            @PathVariable int appointmentId, @AuthenticationPrincipal Jwt principal) {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            sharedApiService.getPDFReport(appointmentId, principal.getClaimAsString("email"));
 | 
					            sharedApiService.getPDFReport(appointmentId, principal.getClaimAsString("email"));
 | 
				
			||||||
        } catch (FileNotFoundException e) {
 | 
					 | 
				
			||||||
            System.out.println(e + "File not found");
 | 
					 | 
				
			||||||
        } catch (DocumentException e) {
 | 
					        } catch (DocumentException e) {
 | 
				
			||||||
            System.out.println(e + "Document exception");
 | 
					            System.out.println(e + "Document exception");
 | 
				
			||||||
 | 
					        } catch (URISyntaxException e) {
 | 
				
			||||||
 | 
					            System.out.println(e + "Error with URI");
 | 
				
			||||||
 | 
					        } catch (IOException e) {
 | 
				
			||||||
 | 
					            System.out.println(e + "Failed to access file");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -37,7 +37,6 @@ public class Entrepreneur extends User {
 | 
				
			|||||||
    public Entrepreneur() {}
 | 
					    public Entrepreneur() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Entrepreneur(
 | 
					    public Entrepreneur(
 | 
				
			||||||
            Long idUser,
 | 
					 | 
				
			||||||
            String userSurname,
 | 
					            String userSurname,
 | 
				
			||||||
            String username,
 | 
					            String username,
 | 
				
			||||||
            String primaryMail,
 | 
					            String primaryMail,
 | 
				
			||||||
@@ -46,7 +45,7 @@ public class Entrepreneur extends User {
 | 
				
			|||||||
            String school,
 | 
					            String school,
 | 
				
			||||||
            String course,
 | 
					            String course,
 | 
				
			||||||
            boolean sneeStatus) {
 | 
					            boolean sneeStatus) {
 | 
				
			||||||
        super(idUser, userSurname, username, primaryMail, secondaryMail, phoneNumber);
 | 
					        super(userSurname, username, primaryMail, secondaryMail, phoneNumber);
 | 
				
			||||||
        this.school = school;
 | 
					        this.school = school;
 | 
				
			||||||
        this.course = course;
 | 
					        this.course = course;
 | 
				
			||||||
        this.sneeStatus = sneeStatus;
 | 
					        this.sneeStatus = sneeStatus;
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -28,6 +28,8 @@ public class User {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public User() {}
 | 
					    public User() {}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    // TODO: this should be removed as we shouldn't be able to chose the ID. Leaving it for
 | 
				
			||||||
 | 
					    // compatibility purposes, as soon as it's not used anymore, delete it
 | 
				
			||||||
    public User(
 | 
					    public User(
 | 
				
			||||||
            Long idUser,
 | 
					            Long idUser,
 | 
				
			||||||
            String userSurname,
 | 
					            String userSurname,
 | 
				
			||||||
@@ -43,6 +45,19 @@ public class User {
 | 
				
			|||||||
        this.phoneNumber = phoneNumber;
 | 
					        this.phoneNumber = phoneNumber;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public User(
 | 
				
			||||||
 | 
					            String userSurname,
 | 
				
			||||||
 | 
					            String userName,
 | 
				
			||||||
 | 
					            String primaryMail,
 | 
				
			||||||
 | 
					            String secondaryMail,
 | 
				
			||||||
 | 
					            String phoneNumber) {
 | 
				
			||||||
 | 
					        this.userSurname = userSurname;
 | 
				
			||||||
 | 
					        this.userName = userName;
 | 
				
			||||||
 | 
					        this.primaryMail = primaryMail;
 | 
				
			||||||
 | 
					        this.secondaryMail = secondaryMail;
 | 
				
			||||||
 | 
					        this.phoneNumber = phoneNumber;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public Long getIdUser() {
 | 
					    public Long getIdUser() {
 | 
				
			||||||
        return idUser;
 | 
					        return idUser;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,11 +4,7 @@ import static enseirb.myinpulse.model.ProjectDecisionValue.ACTIVE;
 | 
				
			|||||||
import static enseirb.myinpulse.model.ProjectDecisionValue.REJECTED;
 | 
					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.*;
 | 
				
			||||||
import enseirb.myinpulse.service.database.AppointmentService;
 | 
					 | 
				
			||||||
import enseirb.myinpulse.service.database.ProjectService;
 | 
					 | 
				
			||||||
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;
 | 
				
			||||||
@@ -17,6 +13,9 @@ 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 java.util.ArrayList;
 | 
				
			||||||
 | 
					import java.util.List;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Service
 | 
					@Service
 | 
				
			||||||
public class AdminApiService {
 | 
					public class AdminApiService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -28,6 +27,7 @@ public class AdminApiService {
 | 
				
			|||||||
    private final UtilsService utilsService;
 | 
					    private final UtilsService utilsService;
 | 
				
			||||||
    private final AppointmentService appointmentService;
 | 
					    private final AppointmentService appointmentService;
 | 
				
			||||||
    private final ReportService reportService;
 | 
					    private final ReportService reportService;
 | 
				
			||||||
 | 
					    private final SectionCellService sectionCellService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Autowired
 | 
					    @Autowired
 | 
				
			||||||
    AdminApiService(
 | 
					    AdminApiService(
 | 
				
			||||||
@@ -36,13 +36,15 @@ public class AdminApiService {
 | 
				
			|||||||
            AdministratorService administratorService,
 | 
					            AdministratorService administratorService,
 | 
				
			||||||
            UtilsService utilsService,
 | 
					            UtilsService utilsService,
 | 
				
			||||||
            AppointmentService appointmentService,
 | 
					            AppointmentService appointmentService,
 | 
				
			||||||
            ReportService reportService) {
 | 
					            ReportService reportService,
 | 
				
			||||||
 | 
					            SectionCellService sectionCellService) {
 | 
				
			||||||
        this.projectService = projectService;
 | 
					        this.projectService = projectService;
 | 
				
			||||||
        this.userService = userService;
 | 
					        this.userService = userService;
 | 
				
			||||||
        this.administratorService = administratorService;
 | 
					        this.administratorService = administratorService;
 | 
				
			||||||
        this.utilsService = utilsService;
 | 
					        this.utilsService = utilsService;
 | 
				
			||||||
        this.appointmentService = appointmentService;
 | 
					        this.appointmentService = appointmentService;
 | 
				
			||||||
        this.reportService = reportService;
 | 
					        this.reportService = reportService;
 | 
				
			||||||
 | 
					        this.sectionCellService = sectionCellService;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: check if tests are sufficient - peer verification required
 | 
					    // TODO: check if tests are sufficient - peer verification required
 | 
				
			||||||
@@ -52,10 +54,36 @@ public class AdminApiService {
 | 
				
			|||||||
                        this.userService.getUserByEmail(mail).getIdUser()));
 | 
					                        this.userService.getUserByEmail(mail).getIdUser()));
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO
 | 
					 | 
				
			||||||
    public Iterable<Appointment> getUpcomingAppointments(String mail) {
 | 
					    public Iterable<Appointment> getUpcomingAppointments(String mail) {
 | 
				
			||||||
        logger.info("User {} check their upcoming appointments", mail);
 | 
					        logger.info("User {} check their upcoming appointments", mail);
 | 
				
			||||||
        throw new ResponseStatusException(HttpStatus.NOT_IMPLEMENTED, "Not implemented yet");
 | 
					        User user = this.userService.getUserByEmail(mail);
 | 
				
			||||||
 | 
					        List<Appointment> appointments = new ArrayList<>();
 | 
				
			||||||
 | 
					        if (user instanceof Administrator) {
 | 
				
			||||||
 | 
					            List<Project> projects = new ArrayList<>(((Administrator) user).getListProject());
 | 
				
			||||||
 | 
					            projects.forEach(
 | 
				
			||||||
 | 
					                    project -> {
 | 
				
			||||||
 | 
					                        project.getListSectionCell()
 | 
				
			||||||
 | 
					                                .forEach(
 | 
				
			||||||
 | 
					                                        sectionCell -> {
 | 
				
			||||||
 | 
					                                            appointments.addAll(
 | 
				
			||||||
 | 
					                                                    this.sectionCellService
 | 
				
			||||||
 | 
					                                                            .getAppointmentsBySectionCellId(
 | 
				
			||||||
 | 
					                                                                    sectionCell
 | 
				
			||||||
 | 
					                                                                            .getIdSectionCell()));
 | 
				
			||||||
 | 
					                                        });
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if (user instanceof Entrepreneur) {
 | 
				
			||||||
 | 
					            Project project = ((Entrepreneur) user).getProjectParticipation();
 | 
				
			||||||
 | 
					            project.getListSectionCell()
 | 
				
			||||||
 | 
					                    .forEach(
 | 
				
			||||||
 | 
					                            sectionCell -> {
 | 
				
			||||||
 | 
					                                appointments.addAll(
 | 
				
			||||||
 | 
					                                        this.sectionCellService.getAppointmentsBySectionCellId(
 | 
				
			||||||
 | 
					                                                sectionCell.getIdSectionCell()));
 | 
				
			||||||
 | 
					                            });
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        return appointments;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO: check if tests are sufficient - peer verification required
 | 
					    // TODO: check if tests are sufficient - peer verification required
 | 
				
			||||||
@@ -91,7 +119,9 @@ public class AdminApiService {
 | 
				
			|||||||
            newProject.getProjectAdministrator().updateListProject(newProject);
 | 
					            newProject.getProjectAdministrator().updateListProject(newProject);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if (newProject.getEntrepreneurProposed() != null) {
 | 
					        if (newProject.getEntrepreneurProposed() != null) {
 | 
				
			||||||
            newProject.getEntrepreneurProposed().setProjectProposed(newProject);
 | 
					            Entrepreneur proposed = newProject.getEntrepreneurProposed();
 | 
				
			||||||
 | 
					            proposed.setProjectProposed(newProject);
 | 
				
			||||||
 | 
					            proposed.setProjectParticipation(newProject);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        newProject
 | 
					        newProject
 | 
				
			||||||
                .getListEntrepreneurParticipation()
 | 
					                .getListEntrepreneurParticipation()
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,8 +13,14 @@ 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 java.io.FileNotFoundException;
 | 
					import java.io.File;
 | 
				
			||||||
import java.io.FileOutputStream;
 | 
					import java.io.FileOutputStream;
 | 
				
			||||||
 | 
					import java.io.IOException;
 | 
				
			||||||
 | 
					import java.net.URI;
 | 
				
			||||||
 | 
					import java.net.URISyntaxException;
 | 
				
			||||||
 | 
					import java.nio.file.Files;
 | 
				
			||||||
 | 
					import java.nio.file.Paths;
 | 
				
			||||||
 | 
					import java.nio.file.StandardCopyOption;
 | 
				
			||||||
import java.time.LocalDateTime;
 | 
					import java.time.LocalDateTime;
 | 
				
			||||||
import java.time.format.DateTimeFormatter;
 | 
					import java.time.format.DateTimeFormatter;
 | 
				
			||||||
import java.util.ArrayList;
 | 
					import java.util.ArrayList;
 | 
				
			||||||
@@ -95,7 +101,6 @@ public class SharedApiService {
 | 
				
			|||||||
        return project.getProjectAdministrator();
 | 
					        return project.getProjectAdministrator();
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO
 | 
					 | 
				
			||||||
    public Iterable<Appointment> getAppointmentsByProjectId(long projectId, String mail) {
 | 
					    public Iterable<Appointment> getAppointmentsByProjectId(long projectId, String mail) {
 | 
				
			||||||
        if (!utilsService.isAllowedToCheckProject(mail, projectId)) {
 | 
					        if (!utilsService.isAllowedToCheckProject(mail, projectId)) {
 | 
				
			||||||
            logger.warn(
 | 
					            logger.warn(
 | 
				
			||||||
@@ -123,9 +128,8 @@ public class SharedApiService {
 | 
				
			|||||||
        return appointments;
 | 
					        return appointments;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    //
 | 
					 | 
				
			||||||
    public void getPDFReport(long appointmentId, String mail)
 | 
					    public void getPDFReport(long appointmentId, String mail)
 | 
				
			||||||
            throws FileNotFoundException, DocumentException {
 | 
					            throws DocumentException, URISyntaxException, IOException {
 | 
				
			||||||
        long projectId =
 | 
					        long projectId =
 | 
				
			||||||
                this.appointmentService
 | 
					                this.appointmentService
 | 
				
			||||||
                        .getAppointmentById(appointmentId)
 | 
					                        .getAppointmentById(appointmentId)
 | 
				
			||||||
@@ -202,9 +206,24 @@ public class SharedApiService {
 | 
				
			|||||||
        document.add(new Paragraph("\n"));
 | 
					        document.add(new Paragraph("\n"));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        document.close();
 | 
					        document.close();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // Replace uri with website address
 | 
				
			||||||
 | 
					        Files.copy(
 | 
				
			||||||
 | 
					                new URI(
 | 
				
			||||||
 | 
					                                "http://localhost:8080/shared/projects/appointments/report/"
 | 
				
			||||||
 | 
					                                        + appointmentId)
 | 
				
			||||||
 | 
					                        .toURL()
 | 
				
			||||||
 | 
					                        .openStream(),
 | 
				
			||||||
 | 
					                Paths.get("Report" + appointmentId + ".pdf"),
 | 
				
			||||||
 | 
					                StandardCopyOption.REPLACE_EXISTING);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        // delete file, we don't want to stock all reports on the server
 | 
				
			||||||
 | 
					        File file = new File("Report" + appointmentId + ".pdf");
 | 
				
			||||||
 | 
					        if (!file.delete()) {
 | 
				
			||||||
 | 
					            logger.warn("Failed to delete report {}", file.getAbsolutePath());
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // TODO
 | 
					 | 
				
			||||||
    public void createAppointmentRequest(Appointment appointment, String mail) {
 | 
					    public void createAppointmentRequest(Appointment appointment, String mail) {
 | 
				
			||||||
        long projectId =
 | 
					        long projectId =
 | 
				
			||||||
                appointment
 | 
					                appointment
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -5,10 +5,12 @@ import static enseirb.myinpulse.model.ProjectDecisionValue.*;
 | 
				
			|||||||
import static org.junit.jupiter.api.Assertions.*;
 | 
					import static org.junit.jupiter.api.Assertions.*;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import enseirb.myinpulse.model.Administrator;
 | 
					import enseirb.myinpulse.model.Administrator;
 | 
				
			||||||
 | 
					import enseirb.myinpulse.model.Entrepreneur;
 | 
				
			||||||
import enseirb.myinpulse.model.Project;
 | 
					import enseirb.myinpulse.model.Project;
 | 
				
			||||||
import enseirb.myinpulse.model.ProjectDecision;
 | 
					import enseirb.myinpulse.model.ProjectDecision;
 | 
				
			||||||
import enseirb.myinpulse.service.AdminApiService;
 | 
					import enseirb.myinpulse.service.AdminApiService;
 | 
				
			||||||
import enseirb.myinpulse.service.database.AdministratorService;
 | 
					import enseirb.myinpulse.service.database.AdministratorService;
 | 
				
			||||||
 | 
					import enseirb.myinpulse.service.database.EntrepreneurService;
 | 
				
			||||||
import enseirb.myinpulse.service.database.ProjectService;
 | 
					import enseirb.myinpulse.service.database.ProjectService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import org.junit.jupiter.api.BeforeAll;
 | 
					import org.junit.jupiter.api.BeforeAll;
 | 
				
			||||||
@@ -26,13 +28,16 @@ import java.util.List;
 | 
				
			|||||||
@Transactional
 | 
					@Transactional
 | 
				
			||||||
public class AdminApiServiceTest {
 | 
					public class AdminApiServiceTest {
 | 
				
			||||||
    private static long administratorid;
 | 
					    private static long administratorid;
 | 
				
			||||||
 | 
					    private static Administrator administrator;
 | 
				
			||||||
 | 
					    private static Entrepreneur entrepreneur;
 | 
				
			||||||
    @Autowired private AdminApiService adminApiService;
 | 
					    @Autowired private AdminApiService adminApiService;
 | 
				
			||||||
    @Autowired private ProjectService projectService;
 | 
					    @Autowired private ProjectService projectService;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @BeforeAll
 | 
					    @BeforeAll
 | 
				
			||||||
    static void setup(
 | 
					    static void setup(
 | 
				
			||||||
            @Autowired AdministratorService administratorService,
 | 
					            @Autowired AdministratorService administratorService,
 | 
				
			||||||
            @Autowired ProjectService projectService) {
 | 
					            @Autowired ProjectService projectService,
 | 
				
			||||||
 | 
					            @Autowired EntrepreneurService entrepreneurService) {
 | 
				
			||||||
        administratorService.addAdministrator(
 | 
					        administratorService.addAdministrator(
 | 
				
			||||||
                new Administrator(
 | 
					                new Administrator(
 | 
				
			||||||
                        "admin",
 | 
					                        "admin",
 | 
				
			||||||
@@ -40,7 +45,7 @@ public class AdminApiServiceTest {
 | 
				
			|||||||
                        "testAdminEmpty@example.com",
 | 
					                        "testAdminEmpty@example.com",
 | 
				
			||||||
                        "testAdmin@example.com",
 | 
					                        "testAdmin@example.com",
 | 
				
			||||||
                        ""));
 | 
					                        ""));
 | 
				
			||||||
        Administrator a =
 | 
					        administrator =
 | 
				
			||||||
                administratorService.addAdministrator(
 | 
					                administratorService.addAdministrator(
 | 
				
			||||||
                        new Administrator(
 | 
					                        new Administrator(
 | 
				
			||||||
                                "admin2",
 | 
					                                "admin2",
 | 
				
			||||||
@@ -48,7 +53,18 @@ public class AdminApiServiceTest {
 | 
				
			|||||||
                                "testAdminFull@example.com",
 | 
					                                "testAdminFull@example.com",
 | 
				
			||||||
                                "testAdmin@example.com",
 | 
					                                "testAdmin@example.com",
 | 
				
			||||||
                                ""));
 | 
					                                ""));
 | 
				
			||||||
        administratorid = a.getIdUser();
 | 
					        administratorid = administrator.getIdUser();
 | 
				
			||||||
 | 
					        entrepreneur =
 | 
				
			||||||
 | 
					                new Entrepreneur(
 | 
				
			||||||
 | 
					                        "JeSuisUnEntrepreneurDeCompet",
 | 
				
			||||||
 | 
					                        "EtUé",
 | 
				
			||||||
 | 
					                        "Entrepreneur@inpulse.com",
 | 
				
			||||||
 | 
					                        "mail2",
 | 
				
			||||||
 | 
					                        "phone",
 | 
				
			||||||
 | 
					                        "Ensimag    nan jdeconne ENSEIRB (-matmeca mais on s'en fout)",
 | 
				
			||||||
 | 
					                        "info ofc",
 | 
				
			||||||
 | 
					                        false);
 | 
				
			||||||
 | 
					        entrepreneurService.addEntrepreneur(entrepreneur);
 | 
				
			||||||
        projectService.addNewProject(
 | 
					        projectService.addNewProject(
 | 
				
			||||||
                new Project(
 | 
					                new Project(
 | 
				
			||||||
                        "sampleProjectAdminApiService",
 | 
					                        "sampleProjectAdminApiService",
 | 
				
			||||||
@@ -161,6 +177,41 @@ public class AdminApiServiceTest {
 | 
				
			|||||||
        assertEquals(1, IterableToList(this.adminApiService.getPendingProjects()).size());
 | 
					        assertEquals(1, IterableToList(this.adminApiService.getPendingProjects()).size());
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void addProjectToAdmin() {
 | 
				
			||||||
 | 
					        assertEquals(0, administrator.getListProject().size());
 | 
				
			||||||
 | 
					        Project p1 = new Project("assProjectToAdmin", null, LocalDate.now(), ACTIVE, administrator);
 | 
				
			||||||
 | 
					        this.adminApiService.addNewProject(p1);
 | 
				
			||||||
 | 
					        assertEquals(1, administrator.getListProject().size());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void addProjectToUser() {
 | 
				
			||||||
 | 
					        assertNull(entrepreneur.getProjectParticipation());
 | 
				
			||||||
 | 
					        Project p1 =
 | 
				
			||||||
 | 
					                new Project("assProjectToAdmin", null, LocalDate.now(), ACTIVE, null, entrepreneur);
 | 
				
			||||||
 | 
					        this.adminApiService.addNewProject(p1);
 | 
				
			||||||
 | 
					        assertEquals(p1, entrepreneur.getProjectParticipation());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    @Test
 | 
				
			||||||
 | 
					    void addProjectWithManyUsers() {
 | 
				
			||||||
 | 
					        Entrepreneur e1 = new Entrepreneur();
 | 
				
			||||||
 | 
					        Entrepreneur e2 = new Entrepreneur();
 | 
				
			||||||
 | 
					        Entrepreneur e3 = new Entrepreneur();
 | 
				
			||||||
 | 
					        assertNull(e1.getProjectParticipation());
 | 
				
			||||||
 | 
					        assertNull(e2.getProjectParticipation());
 | 
				
			||||||
 | 
					        assertNull(e3.getProjectParticipation());
 | 
				
			||||||
 | 
					        Project p1 = new Project("assProjectToAdmin", null, LocalDate.now(), ACTIVE, null, null);
 | 
				
			||||||
 | 
					        p1.updateListEntrepreneurParticipation(e1);
 | 
				
			||||||
 | 
					        p1.updateListEntrepreneurParticipation(e2);
 | 
				
			||||||
 | 
					        p1.updateListEntrepreneurParticipation(e3);
 | 
				
			||||||
 | 
					        this.adminApiService.addNewProject(p1);
 | 
				
			||||||
 | 
					        assertEquals(p1, e1.getProjectParticipation());
 | 
				
			||||||
 | 
					        assertEquals(p1, e2.getProjectParticipation());
 | 
				
			||||||
 | 
					        assertEquals(p1, e3.getProjectParticipation());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Test
 | 
					    @Test
 | 
				
			||||||
    void addDuplicateProject() {
 | 
					    void addDuplicateProject() {
 | 
				
			||||||
        Project p1 =
 | 
					        Project p1 =
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user