38 lines
1.0 KiB
Java
38 lines
1.0 KiB
Java
package com.example.app.project;
|
|
|
|
import com.example.app.project.ProjectDtos.CreateProjectRequest;
|
|
import com.example.app.project.ProjectDtos.ProjectResponse;
|
|
import com.example.app.project.ProjectDtos.UpdateProjectRequest;
|
|
import jakarta.validation.Valid;
|
|
import java.util.List;
|
|
import org.springframework.http.HttpStatus;
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
@RestController
|
|
@RequestMapping("/api/projects")
|
|
public class ProjectController {
|
|
|
|
private final ProjectService projectService;
|
|
|
|
public ProjectController(ProjectService projectService) {
|
|
this.projectService = projectService;
|
|
}
|
|
|
|
@GetMapping
|
|
public List<ProjectResponse> list() {
|
|
return projectService.findAll();
|
|
}
|
|
|
|
@PostMapping
|
|
@ResponseStatus(HttpStatus.CREATED)
|
|
public ProjectResponse create(@Valid @RequestBody CreateProjectRequest req) {
|
|
return projectService.create(req);
|
|
}
|
|
|
|
@PutMapping("/{id}")
|
|
public ProjectResponse update(
|
|
@PathVariable Long id, @Valid @RequestBody UpdateProjectRequest req) {
|
|
return projectService.update(id, req);
|
|
}
|
|
}
|