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> 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 detail(@PathVariable("id") Long id) { return ApiResponse.ok(platformQualificationAppService.detail(id)); } @PostMapping("/platform-qualifications") public ApiResponse create(@Valid @RequestBody PlatformQualificationSaveRequest request) { return ApiResponse.ok(platformQualificationAppService.create(request)); } @PutMapping("/platform-qualifications/{id}") public ApiResponse update(@PathVariable("id") Long id, @Valid @RequestBody PlatformQualificationSaveRequest request) { return ApiResponse.ok(platformQualificationAppService.update(id, request)); } @PatchMapping("/platform-qualifications/{id}/publish-status") public ApiResponse patchPublishStatus(@PathVariable("id") Long id, @Valid @RequestBody PlatformQualificationPublishStatusRequest request) { platformQualificationAppService.patchPublishStatus(id, request); return ApiResponse.ok(null); } @DeleteMapping("/platform-qualifications/{id}") public ApiResponse delete(@PathVariable("id") Long id) { platformQualificationAppService.delete(id); return ApiResponse.ok(null); } }