#11 -- Add project rest api
This commit is contained in:
parent
2131ac462b
commit
a4120b3c48
@ -1,4 +1,4 @@
|
|||||||
package ru.ulstu.fc.project;
|
package ru.ulstu.fc.project.controller;
|
||||||
|
|
||||||
import io.swagger.v3.oas.annotations.Hidden;
|
import io.swagger.v3.oas.annotations.Hidden;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
@ -28,7 +28,7 @@ public class ProjectController {
|
|||||||
|
|
||||||
@PostMapping("save")
|
@PostMapping("save")
|
||||||
public String save(ProjectForm projectForm, Model model) {
|
public String save(ProjectForm projectForm, Model model) {
|
||||||
projectService.save(projectForm);
|
model.addAttribute("project", projectService.save(projectForm));
|
||||||
return "redirect:/list";
|
return "redirect:/list";
|
||||||
}
|
}
|
||||||
|
|
@ -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";
|
||||||
|
}
|
||||||
|
}
|
@ -10,7 +10,13 @@ public class Project extends BaseEntity {
|
|||||||
private String name;
|
private String name;
|
||||||
private Date createDate = new Date();
|
private Date createDate = new Date();
|
||||||
|
|
||||||
|
public Project() {
|
||||||
|
}
|
||||||
|
|
||||||
public Project(ProjectForm projectForm) {
|
public Project(ProjectForm projectForm) {
|
||||||
|
if (projectForm.getId() != null) {
|
||||||
|
setId(projectForm.getId());
|
||||||
|
}
|
||||||
this.name = projectForm.getName();
|
this.name = projectForm.getName();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -20,14 +20,18 @@ public class ProjectService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Project save(ProjectForm projectForm) {
|
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
|
Project dbProject = projectRepository
|
||||||
.findById(projectForm.getId())
|
.findById(projectToSave.getId())
|
||||||
.orElseThrow(() -> new RuntimeException("Project not found by id"));
|
.orElseThrow(() -> new RuntimeException("Project not found by id"));
|
||||||
project.setName(projectForm.getName());
|
dbProject.setName(projectToSave.getName());
|
||||||
return projectRepository.save(project);
|
return projectRepository.save(dbProject);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void delete(ProjectForm projectForm) {
|
public void delete(ProjectForm projectForm) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user