package com.tcm.training.admin.system.controller;
|
|
import com.tcm.training.admin.common.ApiResponse;
|
import com.tcm.training.admin.common.PageResponse;
|
import com.tcm.training.admin.system.dto.PlatformQualificationPublishStatusRequest;
|
import com.tcm.training.admin.system.dto.PlatformQualificationSaveRequest;
|
import com.tcm.training.admin.system.service.PlatformQualificationAppService;
|
import com.tcm.training.admin.system.vo.PlatformQualificationDetailVO;
|
import com.tcm.training.admin.system.vo.PlatformQualificationListItemVO;
|
import org.springframework.validation.annotation.Validated;
|
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.PatchMapping;
|
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 javax.validation.Valid;
|
|
@Validated
|
@RestController
|
@RequestMapping({"/api/v1", "/api"})
|
public class PlatformQualificationController {
|
|
private final PlatformQualificationAppService platformQualificationAppService;
|
|
public PlatformQualificationController(PlatformQualificationAppService platformQualificationAppService) {
|
this.platformQualificationAppService = platformQualificationAppService;
|
}
|
|
@GetMapping("/platform-qualifications")
|
public ApiResponse<PageResponse<PlatformQualificationListItemVO>> page(
|
@RequestParam(required = false, defaultValue = "1") int page,
|
@RequestParam(required = false, defaultValue = "10") int pageSize,
|
@RequestParam(required = false) String qualificationName) {
|
return ApiResponse.ok(platformQualificationAppService.page(page, pageSize, qualificationName));
|
}
|
|
@GetMapping("/platform-qualifications/{id}")
|
public ApiResponse<PlatformQualificationDetailVO> detail(@PathVariable("id") Long id) {
|
return ApiResponse.ok(platformQualificationAppService.detail(id));
|
}
|
|
@PostMapping("/platform-qualifications")
|
public ApiResponse<PlatformQualificationDetailVO> create(@Valid @RequestBody PlatformQualificationSaveRequest request) {
|
return ApiResponse.ok(platformQualificationAppService.create(request));
|
}
|
|
@PutMapping("/platform-qualifications/{id}")
|
public ApiResponse<PlatformQualificationDetailVO> update(@PathVariable("id") Long id,
|
@Valid @RequestBody PlatformQualificationSaveRequest request) {
|
return ApiResponse.ok(platformQualificationAppService.update(id, request));
|
}
|
|
@PatchMapping("/platform-qualifications/{id}/publish-status")
|
public ApiResponse<Void> patchPublishStatus(@PathVariable("id") Long id,
|
@Valid @RequestBody PlatformQualificationPublishStatusRequest request) {
|
platformQualificationAppService.patchPublishStatus(id, request);
|
return ApiResponse.ok(null);
|
}
|
|
@DeleteMapping("/platform-qualifications/{id}")
|
public ApiResponse<Void> delete(@PathVariable("id") Long id) {
|
platformQualificationAppService.delete(id);
|
return ApiResponse.ok(null);
|
}
|
}
|