Files
MyINPulse/MyINPulse-back/src/main/java/enseirb/myinpulse/service/database/AdministratorService.java
Théo Le Lez aaa6e46d0c
Some checks failed
Format / formatting (push) Successful in 6s
Build / build (push) Failing after 39s
CI / build (push) Successful in 11s
fix (kinda) : refactored update of data, still trying to fix bug
from EntrepreneurApiServiceTests (code is a bit messy with prints and comments dw)
2025-04-06 19:22:18 +02:00

107 lines
4.1 KiB
Java

package enseirb.myinpulse.service.database;
import enseirb.myinpulse.model.Administrator;
import enseirb.myinpulse.model.Annotation;
import enseirb.myinpulse.model.MakeAppointment;
import enseirb.myinpulse.model.Project;
import enseirb.myinpulse.repository.AdministratorRepository;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.stereotype.Service;
import org.springframework.web.server.ResponseStatusException;
import java.util.Optional;
@Service
public class AdministratorService {
protected static final Logger logger = LogManager.getLogger();
private final AdministratorRepository administratorRepository;
@Autowired
AdministratorService(AdministratorRepository administratorRepository) {
this.administratorRepository = administratorRepository;
}
public Iterable<Administrator> allAdministrators() {
return this.administratorRepository.findAll();
}
public Administrator getAdministratorById(long id) {
Optional<Administrator> administrator = this.administratorRepository.findById(id);
if (administrator.isEmpty()) {
logger.error("No administrator found with id {}", id);
throw new ResponseStatusException(
HttpStatus.NOT_FOUND, "Cet administrateur n'existe pas");
}
return administrator.get();
}
public Administrator getAdministratorByPrimaryMain(String primaryMail) {
Optional<Administrator> administrator =
this.administratorRepository.findByPrimaryMail(primaryMail);
if (administrator.isEmpty()) {
logger.error("No administrator found with the mail {}", primaryMail);
throw new ResponseStatusException(
HttpStatus.NOT_FOUND, "Cet administrateur n'existe pas");
}
return administrator.get();
}
public Administrator addAdministrator(Administrator administrator) {
return this.administratorRepository.save(administrator);
}
public void updateAdministratorListProject(long idAdministrator, Project project) {
Administrator administrator = getAdministratorById(idAdministrator);
administrator.updateListProject(project);
this.administratorRepository.save(administrator);
}
public void updateAdministratorListAnnotation(long idAdministrator, Annotation annotation) {
Administrator administrator = getAdministratorById(idAdministrator);
administrator.updateListAnnotation(annotation);
this.administratorRepository.save(administrator);
}
public void updateAdministratorMakeAppointment(
long idAdministrator, MakeAppointment makeAppointment) {
Administrator administrator = getAdministratorById(idAdministrator);
administrator.setMakeAppointment(makeAppointment);
this.administratorRepository.save(administrator);
}
public Administrator updateAdministrator(
Long idAdministrator,
Project project,
Annotation annotation,
MakeAppointment makeAppointment) {
Optional<Administrator> administrator = administratorRepository.findById(idAdministrator);
if (administrator.isEmpty()) {
logger.error(
"updateAdministrator : No administrator found with id {}", idAdministrator);
throw new ResponseStatusException(
HttpStatus.NOT_FOUND, "Cet administrateur n'existe pas");
}
if (project != null) {
administrator.get().updateListProject(project);
}
if (annotation != null) {
administrator.get().updateListAnnotation(annotation);
}
if (makeAppointment != null) {
administrator.get().setMakeAppointment(makeAppointment);
}
return this.administratorRepository.save(administrator.get());
}
/*
public Administrator getAdministratorByProject(Project project) {
r
}
*/
}