Class ProjectController

java.lang.Object
inha.git.project.api.controller.ProjectController

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

    • ProjectController

      public ProjectController()
  • Method Details

    • getCondProjects

      @GetMapping("/cond") public BaseResponse<org.springframework.data.domain.Page<SearchProjectsResponse>> getCondProjects(@Validated @ModelAttribute SearchProjectCond searchProjectCond, @RequestParam("page") Integer page, @RequestParam("size") Integer size)
      프로젝트 조건 조회 API

      프로젝트 조건에 맞게 조회합니다.

      Parameters:
      searchProjectCond - 프로젝트 검색 조건
      page - 페이지 번호
      size - size 페이지 사이즈
      Returns:
      검색된 프로젝트 정보를 포함하는 BaseResponse<Page>
    • getProject

      @GetMapping("/{projectIdx}") public BaseResponse<SearchProjectResponse> getProject(@AuthenticationPrincipal User user, @PathVariable("projectIdx") Integer projectIdx)
      프로젝트 상세 조회 API

      프로젝트 상세를 조회합니다.

      Parameters:
      projectIdx - 프로젝트 ID
      Returns:
      프로젝트 상세 조회 결과를 포함하는 BaseResponse
    • getProjectFile

      @GetMapping("/{projectIdx}/file") public BaseResponse<List<SearchFileResponse>> getProjectFile(@AuthenticationPrincipal User user, @PathVariable("projectIdx") Integer projectIdx, @RequestParam(value="path",defaultValue="/") String path)
      프로젝트 파일 조회 API

      프로젝트 파일을 조회합니다.

      Parameters:
      projectIdx - 프로젝트 ID
      path - 파일 경로
      Returns:
      프로젝트 파일 조회 결과를 포함하는 BaseResponse<List>
    • createProject

      @PostMapping(consumes="multipart/form-data") public BaseResponse<ProjectResponse> createProject(@AuthenticationPrincipal User user, @Validated @RequestPart("createProjectRequest") CreateProjectRequest createProjectRequest, @RequestPart("file") org.springframework.web.multipart.MultipartFile file)
      프로젝트 생성
      Parameters:
      user - 사용자 정보
      createProjectRequest - 프로젝트 생성 요청
      file - 프로젝트 파일
      Returns:
      생성된 프로젝트 정보
    • createGithubProject

      @PostMapping("/github") public BaseResponse<ProjectResponse> createGithubProject(@AuthenticationPrincipal User user, @Validated @RequestBody CreateGithubProjectRequest createGithubProjectRequest)
      GitHub 프로젝트 생성
      Parameters:
      user - 사용자 정보
      createGithubProjectRequest - GitHub 프로젝트 생성 요청
      Returns:
      생성된 프로젝트 정보
    • updateProject

      @PutMapping(value="/{projectIdx}", consumes="multipart/form-data") public BaseResponse<ProjectResponse> updateProject(@AuthenticationPrincipal User user, @PathVariable("projectIdx") Integer projectIdx, @Validated @RequestPart("updateProjectRequest") UpdateProjectRequest updateProjectRequest, @RequestPart(value="file",required=false) org.springframework.web.multipart.MultipartFile file)
      프로젝트 수정
      Parameters:
      user - 사용자 정보
      projectIdx - 수정할 프로젝트 ID
      updateProjectRequest - 프로젝트 수정 요청
      file - (선택 사항) 수정할 프로젝트 파일
      Returns:
      수정된 프로젝트 정보
    • deleteProject

      @DeleteMapping("/{projectIdx}") public BaseResponse<ProjectResponse> deleteProject(@AuthenticationPrincipal User user, @PathVariable("projectIdx") Integer projectIdx)
      프로젝트 삭제
      Parameters:
      user - 사용자 정보
      projectIdx - 삭제할 프로젝트 ID
      Returns:
      삭제된 프로젝트 정보