#25 -- Fix project dto
All checks were successful
CI fuzzy controller / container-test-job (push) Successful in 1m40s

This commit is contained in:
Anton Romanov 2025-03-14 15:21:43 +04:00
parent 37fcc9bdcd
commit 3e9ed0561f
5 changed files with 32 additions and 28 deletions

View File

@ -9,7 +9,7 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import ru.ulstu.fc.project.model.Project;
import ru.ulstu.fc.project.model.ProjectForm;
import ru.ulstu.fc.project.model.ProjectDto;
import ru.ulstu.fc.project.service.ProjectRulesService;
import ru.ulstu.fc.project.service.ProjectService;
import ru.ulstu.fc.project.service.ProjectVariableService;
@ -41,7 +41,7 @@ public class ProjectController {
@GetMapping("/edit/{projectId}")
public String edit(@PathVariable(value = "projectId") Integer id, Model model) {
model.addAttribute("project",
new ProjectForm((id != null && id != 0)
new ProjectDto((id != null && id != 0)
? projectService.getById(id)
: new Project()));
@ -51,15 +51,15 @@ public class ProjectController {
}
@PostMapping(value = "save", params = "save")
public String save(ProjectForm projectForm, Model model) {
model.addAttribute("project", projectService.save(projectForm));
public String save(ProjectDto projectDto, Model model) {
model.addAttribute("project", projectService.save(projectDto));
return "redirect:/project/list";
}
@PostMapping(value = "save", params = "delete")
public String delete(ProjectForm projectForm) {
if (projectForm != null && projectForm.getId() != null) {
projectService.delete(projectForm);
public String delete(ProjectDto projectDto) {
if (projectDto != null && projectDto.getId() != null) {
projectService.delete(projectDto);
}
return "redirect:/project/list";
}

View File

@ -6,8 +6,7 @@ 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.model.ProjectDto;
import ru.ulstu.fc.project.service.ProjectService;
import ru.ulstu.fc.user.model.UserRoleConstants;
@ -24,18 +23,18 @@ public class ProjectRestController {
}
@GetMapping("list")
public List<Project> getProjects() {
return projectService.getCurrentUserProjects();
public List<ProjectDto> getProjects() {
return projectService.getCurrentUserProjectsDto();
}
@PostMapping("save")
public Project save(Project project) {
return projectService.save(project);
public ProjectDto save(ProjectDto projectDto) {
return projectService.save(projectDto);
}
@DeleteMapping("delete")
public String delete(ProjectForm projectForm) {
projectService.delete(projectForm);
public String delete(ProjectDto projectDto) {
projectService.delete(projectDto);
return "redirect:/list";
}
}

View File

@ -20,11 +20,11 @@ public class Project extends BaseEntity {
public Project() {
}
public Project(ProjectForm projectForm) {
if (projectForm.getId() != null) {
setId(projectForm.getId());
public Project(ProjectDto projectDto) {
if (projectDto.getId() != null) {
setId(projectDto.getId());
}
this.name = projectForm.getName();
this.name = projectDto.getName();
}
public String getName() {

View File

@ -4,16 +4,16 @@ import jakarta.validation.constraints.NotEmpty;
import java.util.Date;
public class ProjectForm {
public class ProjectDto {
private Integer id;
@NotEmpty(message = "Название проекта не может быть пустым")
private String name;
private Date createDate;
public ProjectForm() {
public ProjectDto() {
}
public ProjectForm(Project project) {
public ProjectDto(Project project) {
this.id = project.getId();
this.name = project.getName();
this.createDate = project.getCreateDate();

View File

@ -2,12 +2,13 @@ package ru.ulstu.fc.project.service;
import org.springframework.stereotype.Service;
import ru.ulstu.fc.project.model.Project;
import ru.ulstu.fc.project.model.ProjectForm;
import ru.ulstu.fc.project.model.ProjectDto;
import ru.ulstu.fc.project.repository.ProjectRepository;
import ru.ulstu.fc.user.model.User;
import ru.ulstu.fc.user.service.UserService;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class ProjectService {
@ -24,6 +25,10 @@ public class ProjectService {
return projectRepository.findAllByUserId(userService.getCurrentUser().getId());
}
public List<ProjectDto> getCurrentUserProjectsDto() {
return getCurrentUserProjects().stream().map(ProjectDto::new).collect(Collectors.toList());
}
public Project getById(Integer id) {
Project project = projectRepository
.findById(id)
@ -32,8 +37,8 @@ public class ProjectService {
return project;
}
public Project save(ProjectForm projectForm) {
return save(new Project(projectForm));
public ProjectDto save(ProjectDto projectDto) {
return new ProjectDto(save(new Project(projectDto)));
}
public Project save(Project projectToSave) {
@ -47,9 +52,9 @@ public class ProjectService {
return projectRepository.save(dbProject);
}
public void delete(ProjectForm projectForm) {
getById(projectForm.getId());
projectRepository.deleteById(projectForm.getId());
public void delete(ProjectDto projectDto) {
getById(projectDto.getId());
projectRepository.deleteById(projectDto.getId());
}
public void checkIsCurrentUserProjectWithThrow(Project project) {