Package inha.git.user.api.controller
Class UserController
java.lang.Object
inha.git.user.api.controller.UserController
사용자 관련 API를 처리하는 컨트롤러입니다.
일반 사용자, 학생, 교수, 기업회원의 회원가입과 정보 관리 기능을 제공합니다.
사용자 조회, 프로젝트/팀/문제 참여 현황 등의 조회 기능을 포함합니다.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionchangePassword
(User user, UpdatePwRequest updatePwRequest) 로그인한 사용자의 비밀번호를 변경합니다.companySignup
(CompanySignupRequest companySignupRequest, @NotNull(message="evidence \ud30c\uc77c\uc744 \ucca8\ubd80\ud574\uc8fc\uc138\uc694.") org.springframework.web.multipart.MultipartFile evidence) 기업 회원가입을 처리합니다.getLoginUser
(User user) 현재 로그인한 사용자의 상세 정보를 조회합니다.특정 사용자의 상세 정보를 조회합니다.BaseResponse<org.springframework.data.domain.Page<SearchBugReportsResponse>>
getUserBugReports
(User user, Integer userIdx, SearchBugReportCond searchBugReportCond, Integer page) 특정 사용자가 작성한 버그 제보 목록을 조회합니다.BaseResponse<org.springframework.data.domain.Page<SearchProblemsResponse>>
getUserProblems
(User user, Integer userIdx, Integer page) 특정 사용자가 업로드한 문제 목록을 조회합니다.BaseResponse<org.springframework.data.domain.Page<SearchProblemsResponse>>
getUserProblemsParticipating
(User user, Integer userIdx, Integer page) 특정 사용자가 참여중인 문제 목록을 조회합니다.BaseResponse<org.springframework.data.domain.Page<SearchProjectsResponse>>
getUserProjects
(User user, Integer userIdx, Integer page) 특정 사용자가 참여중인 프로젝트 목록을 조회합니다.BaseResponse<org.springframework.data.domain.Page<SearchQuestionsResponse>>
getUserQuestions
(User user, Integer userIdx, Integer page) 특정 사용자가 작성한 질문 목록을 조회합니다.BaseResponse<org.springframework.data.domain.Page<SearchReportResponse>>
getUserReports
(User user, Integer userIdx, Integer page) 특정 사용자가 작성한 신고 목록을 조회합니다.professorSignup
(ProfessorSignupRequest professorSignupRequest) 교수 회원가입을 처리합니다.studentSignup
(StudentSignupRequest studentSignupRequest) 학생 회원가입을 처리합니다.
-
Constructor Details
-
UserController
public UserController()
-
-
Method Details
-
getLoginUser
@GetMapping public BaseResponse<SearchUserResponse> getLoginUser(@AuthenticationPrincipal User user) 현재 로그인한 사용자의 상세 정보를 조회합니다.- Parameters:
user
- 현재 인증된 사용자 정보- Returns:
- BaseResponse
사용자의 기본 정보와 통계 정보를 포함한 응답
-
getUser
@GetMapping("/{userIdx}") public BaseResponse<SearchUserResponse> getUser(@PathVariable("userIdx") Integer userIdx) 특정 사용자의 상세 정보를 조회합니다.- Parameters:
userIdx
- 조회할 대상 사용자의 식별자- Returns:
- BaseResponse
사용자의 기본 정보와 통계 정보를 포함한 응답 - Throws:
BaseException
- 조회 대상 사용자가 존재하지 않는 경우
-
getUserProjects
@GetMapping("/{userIdx}/projects") public BaseResponse<org.springframework.data.domain.Page<SearchProjectsResponse>> getUserProjects(@AuthenticationPrincipal User user, @PathVariable("userIdx") Integer userIdx, @RequestParam("page") Integer page) 특정 사용자가 참여중인 프로젝트 목록을 조회합니다.- Parameters:
user
- 현재 인증된 사용자 정보userIdx
- 조회할 대상 사용자의 식별자page
- 조회할 페이지 번호 (1부터 시작)- Returns:
- BaseResponse<Page
> 프로젝트 목록을 포함한 페이징 응답 - Throws:
BaseException
- 페이지 번호가 1 미만이거나, 조회 권한이 없는 경우
-
getUserQuestions
@GetMapping("/{userIdx}/questions") public BaseResponse<org.springframework.data.domain.Page<SearchQuestionsResponse>> getUserQuestions(@AuthenticationPrincipal User user, @PathVariable("userIdx") Integer userIdx, @RequestParam("page") Integer page) 특정 사용자가 작성한 질문 목록을 조회합니다.- Parameters:
user
- 현재 인증된 사용자 정보userIdx
- 조회할 대상 사용자의 식별자page
- 조회할 페이지 번호 (1부터 시작)- Returns:
- BaseResponse<Page
> 질문 목록을 포함한 페이징 응답 - Throws:
BaseException
- 페이지 번호가 1 미만이거나, 조회 권한이 없는 경우
-
getUserProblems
@GetMapping("/{userIdx}/problems") public BaseResponse<org.springframework.data.domain.Page<SearchProblemsResponse>> getUserProblems(@AuthenticationPrincipal User user, @PathVariable("userIdx") Integer userIdx, @RequestParam("page") Integer page) 특정 사용자가 업로드한 문제 목록을 조회합니다.- Parameters:
user
- 현재 인증된 사용자 정보userIdx
- 조회할 대상 사용자의 식별자page
- 조회할 페이지 번호 (1부터 시작)- Returns:
- BaseResponse<Page
> 문제 목록을 포함한 페이징 응답 - Throws:
BaseException
- 페이지 번호가 1 미만이거나, 조회 권한이 없는 경우
-
getUserProblemsParticipating
@GetMapping("/{userIdx}/problems/participating") public BaseResponse<org.springframework.data.domain.Page<SearchProblemsResponse>> getUserProblemsParticipating(@AuthenticationPrincipal User user, @PathVariable("userIdx") Integer userIdx, @RequestParam("page") Integer page) 특정 사용자가 참여중인 문제 목록을 조회합니다.- Parameters:
user
- 현재 인증된 사용자 정보userIdx
- 조회할 대상 사용자의 식별자page
- 조회할 페이지 번호 (1부터 시작)- Returns:
- BaseResponse<Page
> 문제 목록을 포함한 페이징 응답 - Throws:
BaseException
- 페이지 번호가 1 미만이거나, 조회 권한이 없는 경우
-
getUserReports
@GetMapping("/{userIdx}/reports") public BaseResponse<org.springframework.data.domain.Page<SearchReportResponse>> getUserReports(@AuthenticationPrincipal User user, @PathVariable("userIdx") Integer userIdx, @RequestParam("page") Integer page) 특정 사용자가 작성한 신고 목록을 조회합니다.- Parameters:
user
- 현재 인증된 사용자 정보userIdx
- 조회할 대상 사용자의 식별자page
- 조회할 페이지 번호 (1부터 시작)- Returns:
- BaseResponse<Page
> 신고 목록을 포함한 페이징 응답 - Throws:
BaseException
- 페이지 번호가 1 미만이거나, 조회 권한이 없는 경우
-
getUserBugReports
@GetMapping("/{userIdx}/bug-reports") public BaseResponse<org.springframework.data.domain.Page<SearchBugReportsResponse>> getUserBugReports(@AuthenticationPrincipal User user, @PathVariable("userIdx") Integer userIdx, @Validated @ModelAttribute SearchBugReportCond searchBugReportCond, @RequestParam("page") Integer page) 특정 사용자가 작성한 버그 제보 목록을 조회합니다.- Parameters:
user
- 현재 인증된 사용자 정보userIdx
- 조회할 대상 사용자의 식별자searchBugReportCond
- 버그 제보 검색 조건page
- 조회할 페이지 번호 (1부터 시작)- Returns:
- BaseResponse<Page
> 버그 제보 목록을 포함한 페이징 응답 - Throws:
BaseException
- 페이지 번호가 1 미만이거나, 조회 권한이 없는 경우
-
studentSignup
@PostMapping("/student") public BaseResponse<StudentSignupResponse> studentSignup(@Validated @RequestBody StudentSignupRequest studentSignupRequest) 학생 회원가입을 처리합니다.- Parameters:
studentSignupRequest
- 학생 회원가입 요청 정보 (이메일, 비밀번호, 이름, 학번, 학과 정보 등)- Returns:
- BaseResponse
가입된 학생 정보를 포함한 응답 - Throws:
BaseException
- 이메일 중복, 유효하지 않은 학과 정보, 이메일 인증 실패 등의 경우
-
professorSignup
@PostMapping("/professor") public BaseResponse<ProfessorSignupResponse> professorSignup(@Validated @RequestBody ProfessorSignupRequest professorSignupRequest) 교수 회원가입을 처리합니다.- Parameters:
professorSignupRequest
- 교수 회원가입 요청 정보 (이메일, 비밀번호, 이름, 사번, 학과 정보 등)- Returns:
- BaseResponse
가입된 교수 정보를 포함한 응답 - Throws:
BaseException
- 이메일 중복, 유효하지 않은 학과 정보, 이메일 인증 실패 등의 경우
-
companySignup
@PostMapping(value="/company", consumes="multipart/form-data") public BaseResponse<CompanySignupResponse> companySignup(@Validated @RequestPart("company") CompanySignupRequest companySignupRequest, @Validated @NotNull(message="evidence \ud30c\uc77c\uc744 \ucca8\ubd80\ud574\uc8fc\uc138\uc694.") @RequestPart("evidence") @NotNull(message="evidence \ud30c\uc77c\uc744 \ucca8\ubd80\ud574\uc8fc\uc138\uc694.") org.springframework.web.multipart.MultipartFile evidence) 기업 회원가입을 처리합니다.- Parameters:
companySignupRequest
- 기업 회원가입 요청 정보 (이메일, 비밀번호, 이름, 회사명 등)evidence
- 사업자등록증 파일- Returns:
- BaseResponse
가입된 기업 정보를 포함한 응답 - Throws:
BaseException
- 이메일 중복, 파일 업로드 실패, 이메일 인증 실패 등의 경우
-
changePassword
@PutMapping("/pw") public BaseResponse<UserResponse> changePassword(@AuthenticationPrincipal User user, @Validated @RequestBody UpdatePwRequest updatePwRequest) 로그인한 사용자의 비밀번호를 변경합니다.- Parameters:
user
- 현재 인증된 사용자 정보updatePwRequest
- 변경할 비밀번호 정보- Returns:
- BaseResponse
비밀번호가 변경된 사용자 정보를 포함한 응답
-