This commit is contained in:
2025-10-02 18:01:23 +02:00
parent 210611bbbe
commit e7784f31bb
44 changed files with 1787 additions and 93 deletions

View File

@@ -1,10 +1,11 @@
package de.iwomm.propify_api.controller;
import de.iwomm.propify_api.dto.NewProjectDTO;
import de.iwomm.propify_api.dto.ProjectDTO;
import de.iwomm.propify_api.dto.ProjectDetailsDTO;
import de.iwomm.propify_api.dto.ProjectStatsDTO;
import de.iwomm.propify_api.dto.PropertyDTO;
import de.iwomm.propify_api.entity.Project;
import de.iwomm.propify_api.entity.Property;
import de.iwomm.propify_api.mapper.ProjectMapper;
import de.iwomm.propify_api.service.ProjectService;
import jakarta.persistence.EntityNotFoundException;
import org.springframework.http.ResponseEntity;
@@ -19,10 +20,12 @@ import java.util.UUID;
@RestController
@RequestMapping("/api/v1/projects")
public class ProjectController {
private ProjectService projectService;
private final ProjectService projectService;
private final ProjectMapper projectMapper;
public ProjectController(ProjectService projectService) {
public ProjectController(ProjectService projectService, ProjectMapper projectMapper) {
this.projectService = projectService;
this.projectMapper = projectMapper;
}
@GetMapping
@@ -38,7 +41,8 @@ public class ProjectController {
@PreAuthorize("hasAnyRole('ADMIN', 'USER')")
public ResponseEntity<?> getById(@PathVariable UUID id) {
try {
ProjectDTO projectDTO = projectService.toDTO(projectService.findById(id).orElseThrow(EntityNotFoundException::new));
Project project = projectService.findById(id).orElseThrow(EntityNotFoundException::new);
ProjectDetailsDTO projectDTO = this.projectMapper.projectToProjectDetailsDTO(project);
return ResponseEntity
.ok(projectDTO);
@@ -68,9 +72,9 @@ public class ProjectController {
@PostMapping
@PreAuthorize("hasRole('ADMIN')")
public ResponseEntity<?> create(@RequestBody ProjectDTO projectDTO) {
public ResponseEntity<?> create(@RequestBody NewProjectDTO newProjectDTO) {
try {
Project newItem = projectService.save(projectDTO);
Project newItem = projectService.save(newProjectDTO);
URI location = ServletUriComponentsBuilder.fromCurrentRequest()
.path("/{id}")