feat: added a new database service
This commit is contained in:
@ -0,0 +1,66 @@
|
||||
package enseirb.myinpulse.service.database;
|
||||
|
||||
import enseirb.myinpulse.model.Project;
|
||||
import enseirb.myinpulse.repository.ProjectRepository;
|
||||
|
||||
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.time.LocalDate;
|
||||
import java.util.Optional;
|
||||
|
||||
@Service
|
||||
public class ProjectService {
|
||||
|
||||
private final ProjectRepository projectRepository;
|
||||
|
||||
@Autowired
|
||||
ProjectService(ProjectRepository projectRepository) {
|
||||
this.projectRepository = projectRepository;
|
||||
}
|
||||
|
||||
public Iterable<Project> getAllProjects() {
|
||||
return this.projectRepository.findAll();
|
||||
}
|
||||
|
||||
// TODO: change error
|
||||
public Project getProjectById(Long id) {
|
||||
Optional<Project> project = this.projectRepository.findById(id);
|
||||
if (project.isEmpty()) {
|
||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ce projet n'existe pas");
|
||||
}
|
||||
return project.get();
|
||||
}
|
||||
|
||||
// TODO: validation
|
||||
public Project addNewProject(Project project) {
|
||||
return this.projectRepository.save(project);
|
||||
}
|
||||
|
||||
public Project updateProject(
|
||||
Long id,
|
||||
String projectName,
|
||||
byte[] logo,
|
||||
LocalDate creationDate,
|
||||
String projectStatus) {
|
||||
Optional<Project> project = this.projectRepository.findById(id);
|
||||
if (project.isEmpty()) {
|
||||
throw new ResponseStatusException(HttpStatus.NOT_FOUND, "Ce projet n'existe pas");
|
||||
}
|
||||
if (projectName != null) {
|
||||
project.get().setProjectName(projectName);
|
||||
}
|
||||
if (logo != null) {
|
||||
project.get().setLogo(logo);
|
||||
}
|
||||
if (creationDate != null) {
|
||||
project.get().setCreationDate(creationDate);
|
||||
}
|
||||
if (projectStatus != null) {
|
||||
project.get().setProjectStatus(projectStatus);
|
||||
}
|
||||
return this.projectRepository.save(project.get());
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user