Class ProblemController

java.lang.Object
inha.git.problem.api.controller.ProblemController

@RestController @RequestMapping("/api/v1/problems") public class ProblemController extends Object
ProblemController는 problem 관련 엔드포인트를 처리.
  • Constructor Details

    • ProblemController

      public ProblemController()
  • Method Details

    • getProblems

      @GetMapping public BaseResponse<org.springframework.data.domain.Page<SearchProblemsResponse>> getProblems(@RequestParam("page") Integer page, @RequestParam("size") Integer size)
      문제 목록 조회 API

      문제 목록을 조회합니다.

      Parameters:
      page - 페이지 번호
      size - 페이지 사이즈
      Returns:
      문제 목록 조회 결과를 포함하는 BaseResponse<Page>
    • getProblem

      @GetMapping("/{problemIdx}") public BaseResponse<SearchProblemResponse> getProblem(@AuthenticationPrincipal User user, @PathVariable("problemIdx") Integer problemIdx)
      문제 상세 조회 API
      Parameters:
      user - 유저 정보
      problemIdx - 문제 인덱스
      Returns:
      문제 상세 정보
    • createProblem

      @PostMapping(consumes="multipart/form-data") @PreAuthorize("hasAnyAuthority(\'professor:create\', \'company:create\')") public BaseResponse<ProblemResponse> createProblem(@AuthenticationPrincipal User user, @Validated @RequestPart("createProblemRequest") CreateProblemRequest createProblemRequest, @RequestPart(value="files",required=false) List<org.springframework.web.multipart.MultipartFile> files)
      문제 생성 API
      Parameters:
      user - 유저 정보
      createProblemRequest - 문제 생성 요청 정보
      files - 문제 파일들
      Returns:
      생성된 문제 정보
    • updateProblem

      @PutMapping(value="/{problemIdx}", consumes="multipart/form-data") @PreAuthorize("hasAnyAuthority(\'professor:update\', \'company:update\')") public BaseResponse<ProblemResponse> updateProblem(@AuthenticationPrincipal User user, @PathVariable("problemIdx") Integer problemIdx, @Validated @RequestPart("updateProblemRequest") UpdateProblemRequest updateProblemRequest, @RequestPart(value="files",required=false) List<org.springframework.web.multipart.MultipartFile> files)
      문제 수정 API
      Parameters:
      user - 유저 정보
      problemIdx - 문제 인덱스
      updateProblemRequest - 문제 수정 요청 정보
      files - 문제 파일들
      Returns:
      수정된 문제 정보
    • updateProblemStatus

      @PatchMapping("/{problemIdx}") @PreAuthorize("hasAnyAuthority(\'professor:update\', \'company:update\')") public BaseResponse<ProblemResponse> updateProblemStatus(@AuthenticationPrincipal User user, @PathVariable("problemIdx") Integer problemIdx, @Validated @RequestParam("status") ProblemStatus status)
      문제 상태 수정 API
      Parameters:
      user - 유저 정보
      problemIdx - 문제 인덱스
      status - 문제 상태
      Returns:
      수정된 문제 정보
    • deleteProblem

      @DeleteMapping("/{problemIdx}") @PreAuthorize("hasAnyAuthority(\'professor:update\', \'company:update\')") public BaseResponse<ProblemResponse> deleteProblem(@AuthenticationPrincipal User user, @PathVariable("problemIdx") Integer problemIdx)
      문제 삭제 API
      Parameters:
      user - 유저 정보
      problemIdx - 문제 인덱스
      Returns:
      삭제된 문제 정보