#11 -- Add project rest api

This commit is contained in:
Anton Romanov 2025-02-14 19:29:16 +04:00
parent 2131ac462b
commit a4120b3c48
4 changed files with 56 additions and 8 deletions

View File

@ -1,4 +1,4 @@
package ru.ulstu.fc.project;
package ru.ulstu.fc.project.controller;
import io.swagger.v3.oas.annotations.Hidden;
import org.springframework.stereotype.Controller;
@ -28,7 +28,7 @@ public class ProjectController {
@PostMapping("save")
public String save(ProjectForm projectForm, Model model) {
projectService.save(projectForm);
model.addAttribute("project", projectService.save(projectForm));
return "redirect:/list";
}

View File

@ -0,0 +1,38 @@
package ru.ulstu.fc.project.controller;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ru.ulstu.fc.project.model.Project;
import ru.ulstu.fc.project.model.ProjectForm;
import ru.ulstu.fc.project.service.ProjectService;
import java.util.List;
@RestController
@RequestMapping("projectRest")
public class ProjectRestController {
private final ProjectService projectService;
public ProjectRestController(ProjectService projectService) {
this.projectService = projectService;
}
@GetMapping("list")
public List<Project> getProjects() {
return projectService.getCurrentUserProjects();
}
@PostMapping("save")
public Project save(Project project) {
return projectService.save(project);
}
@DeleteMapping("delete")
public String delete(ProjectForm projectForm) {
projectService.delete(projectForm);
return "redirect:/list";
}
}

View File

@ -10,7 +10,13 @@ public class Project extends BaseEntity {
private String name;
private Date createDate = new Date();
public Project() {
}
public Project(ProjectForm projectForm) {
if (projectForm.getId() != null) {
setId(projectForm.getId());
}
this.name = projectForm.getName();
}

View File

@ -20,14 +20,18 @@ public class ProjectService {
}
public Project save(ProjectForm projectForm) {
if (projectForm.getId() == null) {
return projectRepository.save(new Project(projectForm));
return projectRepository.save(new Project(projectForm));
}
public Project save(Project projectToSave) {
if (projectToSave.getId() == null) {
return projectRepository.save(projectToSave);
}
Project project = projectRepository
.findById(projectForm.getId())
Project dbProject = projectRepository
.findById(projectToSave.getId())
.orElseThrow(() -> new RuntimeException("Project not found by id"));
project.setName(projectForm.getName());
return projectRepository.save(project);
dbProject.setName(projectToSave.getName());
return projectRepository.save(dbProject);
}
public void delete(ProjectForm projectForm) {