Package inha.git.problem.api.controller
Class ProblemController
java.lang.Object
inha.git.problem.api.controller.ProblemController
ProblemController는 problem 관련 엔드포인트를 처리.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioncreateProblem
(User user, CreateProblemRequest createProblemRequest, List<org.springframework.web.multipart.MultipartFile> files) 문제 생성 APIdeleteProblem
(User user, Integer problemIdx) 문제 삭제 APIgetProblem
(User user, Integer problemIdx) 문제 상세 조회 APIBaseResponse<org.springframework.data.domain.Page<SearchProblemsResponse>>
getProblems
(Integer page, Integer size) 문제 목록 조회 APIupdateProblem
(User user, Integer problemIdx, UpdateProblemRequest updateProblemRequest, List<org.springframework.web.multipart.MultipartFile> files) 문제 수정 APIupdateProblemStatus
(User user, Integer problemIdx, ProblemStatus status) 문제 상태 수정 API
-
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:
- 삭제된 문제 정보
-