package enseirb.myinpulse.service; import enseirb.myinpulse.model.Administrator; import enseirb.myinpulse.model.Entrepreneur; import enseirb.myinpulse.model.Project; import enseirb.myinpulse.model.User; import enseirb.myinpulse.service.database.AdministratorService; import enseirb.myinpulse.service.database.EntrepreneurService; import enseirb.myinpulse.service.database.ProjectService; import enseirb.myinpulse.service.database.UserService; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.web.server.ResponseStatusException; @Service public class UtilsService { protected static final Logger logger = LogManager.getLogger(); private final UserService userService; private final ProjectService projectService; private final EntrepreneurService entrepreneurService; private final AdministratorService administratorService; @Autowired UtilsService( ProjectService projectService, UserService userService, EntrepreneurService entrepreneurService, AdministratorService administratorService) { this.userService = userService; this.projectService = projectService; this.entrepreneurService = entrepreneurService; this.administratorService = administratorService; } // TODO: test? public Boolean isAllowedToCheckProject(String mail, long projectId) { if (isAnAdmin(mail)) { return true; } User user = this.userService.getUserByEmail(mail); Entrepreneur entrepreneur = this.entrepreneurService.getEntrepreneurById(user.getIdUser()); Project project = this.projectService.getProjectById(projectId); return entrepreneur.getProjectParticipation() == project; } // TODO: test Boolean isAnAdmin(String mail) { try { long userId = this.userService.getUserByEmail(mail).getIdUser(); Administrator a = this.administratorService.getAdministratorById(userId); return true; } catch (ResponseStatusException e) { logger.info(e); return false; } } }