69 lines
2.9 KiB
Java
69 lines
2.9 KiB
Java
package ru.ulstu.activity.project.controller;
|
|
|
|
import org.springframework.web.bind.annotation.DeleteMapping;
|
|
import org.springframework.web.bind.annotation.GetMapping;
|
|
import org.springframework.web.bind.annotation.PathVariable;
|
|
import org.springframework.web.bind.annotation.PostMapping;
|
|
import org.springframework.web.bind.annotation.PutMapping;
|
|
import org.springframework.web.bind.annotation.RequestBody;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
import ru.ulstu.activity.api.ActivityController;
|
|
import ru.ulstu.activity.project.model.ProjectDashboardDto;
|
|
import ru.ulstu.activity.project.model.ProjectDto;
|
|
import ru.ulstu.activity.project.model.ProjectListDto;
|
|
import ru.ulstu.activity.project.service.ProjectService;
|
|
import ru.ulstu.configuration.Constants;
|
|
import ru.ulstu.core.model.response.PageableItems;
|
|
import ru.ulstu.core.model.response.Response;
|
|
|
|
import javax.validation.Valid;
|
|
|
|
@RestController
|
|
@RequestMapping(Constants.API_1_0 + "projects")
|
|
public class ProjectController implements ActivityController<ProjectListDto, ProjectDashboardDto, ProjectDto> {
|
|
private final ProjectService projectService;
|
|
|
|
public ProjectController(ProjectService projectService) {
|
|
this.projectService = projectService;
|
|
}
|
|
|
|
@GetMapping("list")
|
|
public Response<PageableItems<ProjectListDto>> getList(@RequestParam(value = "offset", defaultValue = "0") int offset,
|
|
@RequestParam(value = "count", defaultValue = "10") int count) {
|
|
return new Response<>(projectService.findAllDto(offset, count));
|
|
}
|
|
|
|
@GetMapping("dashboard")
|
|
public Response<PageableItems<ProjectDashboardDto>> getDashboard(@RequestParam(value = "offset", defaultValue = "0") int offset,
|
|
@RequestParam(value = "count", defaultValue = "10") int count) {
|
|
return new Response<>(projectService.findAllActiveDto(offset, count));
|
|
}
|
|
|
|
@GetMapping("{project-id}")
|
|
public Response<ProjectDto> get(@PathVariable("project-id") Integer projectId) {
|
|
return new Response<>(projectService.findDtoById(projectId));
|
|
}
|
|
|
|
@PostMapping
|
|
public Response<ProjectDto> create(@RequestBody @Valid ProjectDto projectDto) {
|
|
return new Response<>(projectService.create(projectDto));
|
|
}
|
|
|
|
@PutMapping
|
|
public Response<ProjectDto> update(@RequestBody @Valid ProjectDto projectDto) {
|
|
return new Response<>(projectService.update(projectDto));
|
|
}
|
|
|
|
@DeleteMapping("/{project-id}")
|
|
public Response<Boolean> delete(@PathVariable("project-id") Integer projectId) {
|
|
return new Response<>(projectService.delete(projectId));
|
|
}
|
|
|
|
@PostMapping("ping/{project-id}")
|
|
public void ping(@PathVariable("project-id") int projectId) {
|
|
projectService.ping(projectId);
|
|
}
|
|
}
|