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}")

View File

@@ -0,0 +1,31 @@
package de.iwomm.propify_api.controller;
import de.iwomm.propify_api.dto.ProjectStatusDTO;
import de.iwomm.propify_api.service.ProjectStatusService;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api/v1/project-statuses")
public class ProjectStatusController {
private final ProjectStatusService projectStatusService;
public ProjectStatusController(ProjectStatusService projectStatusService) {
this.projectStatusService = projectStatusService;
}
@GetMapping
@PreAuthorize("hasAnyRole('ROLE_USER')")
public ResponseEntity<?> getAll() {
List<ProjectStatusDTO> projectStatusDTO = projectStatusService.toDTOs(projectStatusService.findAll());
return ResponseEntity
.ok(projectStatusDTO);
}
}

View File

@@ -0,0 +1,34 @@
package de.iwomm.propify_api.controller;
import de.iwomm.propify_api.dto.ProjectStatusDTO;
import de.iwomm.propify_api.dto.ProjectTypeDTO;
import de.iwomm.propify_api.entity.ProjectType;
import de.iwomm.propify_api.service.ProjectStatusService;
import de.iwomm.propify_api.service.ProjectTypeService;
import org.springframework.http.ResponseEntity;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api/v1/project-types")
public class ProjectTypeController {
private final ProjectTypeService projectTypeService;
public ProjectTypeController(ProjectTypeService projectTypeService) {
this.projectTypeService = projectTypeService;
}
@GetMapping
@PreAuthorize("hasAnyRole('ROLE_USER')")
public ResponseEntity<?> getAll() {
List<ProjectTypeDTO> projectTypeDTO = projectTypeService.toDTOs(projectTypeService.findAll());
return ResponseEntity
.ok(projectTypeDTO);
}
}