99import io .swagger .v3 .oas .annotations .tags .Tag ;
1010import org .springframework .web .bind .annotation .GetMapping ;
1111import org .springframework .web .bind .annotation .PathVariable ;
12- import sopt . comfit . company . dto . response . GetCompanyResponseDto ;
13- import sopt .comfit .company .dto .response .GetSuggestionCompanyResponseDto ;
12+ import org . springframework . web . bind . annotation . RequestParam ;
13+ import sopt .comfit .company .dto .response .* ;
1414import sopt .comfit .global .annotation .LoginUser ;
1515import sopt .comfit .global .dto .CommonApiResponse ;
1616import sopt .comfit .global .dto .CustomErrorResponse ;
17+ import sopt .comfit .global .dto .PageDto ;
1718
1819import java .util .List ;
1920
2021@ Tag (name = "Company" , description = "기업 관련 API" )
2122public interface CompanySwagger {
2223
24+
25+ @ Operation (
26+ summary = "기업 검색/조회 API" ,
27+ description = "기업검색/조회 API 입니다"
28+ )
29+ @ ApiResponses ({
30+ @ ApiResponse (responseCode = "200" , description = "기업 검색/조회 성공" ,
31+ content = @ Content (mediaType = "application/json" ,
32+ schema = @ Schema (implementation = CommonApiResponse .class ))),
33+
34+ @ ApiResponse (responseCode = "403" , description = "권한 오류" ,
35+ content = @ Content (mediaType = "application/json" ,
36+ schema = @ Schema (implementation = CustomErrorResponse .class ))),
37+ @ ApiResponse (responseCode = "401" , description = "헤더값 오류" ,
38+ content = @ Content (mediaType = "application/json" ,
39+ schema = @ Schema (implementation = CustomErrorResponse .class ))),
40+ @ ApiResponse (responseCode = "400" , description = "올바르지 않은 값입니다" ,
41+ content = @ Content (mediaType = "application/json" ,
42+ schema = @ Schema (implementation = CustomErrorResponse .class )))
43+ })
44+ @ GetMapping
45+ @ SecurityRequirement (name = "JWT" )
46+ PageDto <GetCompanyListResponseDto > getCompanyList (@ RequestParam (required = false ) String keyword ,
47+ @ RequestParam (required = false ) String industry ,
48+ @ RequestParam (required = false ) String scale ,
49+ @ RequestParam (required = false ) String sort ,
50+ @ RequestParam (defaultValue = "1" ) int page ,
51+ @ RequestParam (required = false ) Boolean isRecruited );
52+ @ Operation (
53+ summary = "기업 검색 API" ,
54+ description = "기업검색 API 입니다"
55+ )
56+ @ ApiResponses ({
57+ @ ApiResponse (responseCode = "200" , description = "기업 검색 성공" ,
58+ content = @ Content (mediaType = "application/json" ,
59+ schema = @ Schema (implementation = CommonApiResponse .class ))),
60+
61+ @ ApiResponse (responseCode = "403" , description = "권한 오류" ,
62+ content = @ Content (mediaType = "application/json" ,
63+ schema = @ Schema (implementation = CustomErrorResponse .class ))),
64+ @ ApiResponse (responseCode = "401" , description = "헤더값 오류" ,
65+ content = @ Content (mediaType = "application/json" ,
66+ schema = @ Schema (implementation = CustomErrorResponse .class )))
67+ })
68+ @ GetMapping ("/search" )
69+ @ SecurityRequirement (name = "JWT" )
70+ List <GetCompanySearchResponseDto > getCompanySearchList (@ RequestParam String keyword );
71+
72+
73+ @ Operation (
74+ summary = "주요 기업 조회 API" ,
75+ description = "주요 기업 조회 API입니다. 토큰이 없으면 랜덤 3개, 토큰이 있으면 rank에 따라 사용자의 관심 산업군 기업을 반환합니다."
76+ )
77+ @ SecurityRequirement (name = "JWT" )
78+ @ ApiResponses ({
79+ @ ApiResponse (responseCode = "200" , description = "주요 기업 조회 성공" ,
80+ content = @ Content (mediaType = "application/json" ,
81+ schema = @ Schema (implementation = CommonApiResponse .class ))),
82+
83+ @ ApiResponse (responseCode = "403" , description = "권한 오류" ,
84+ content = @ Content (mediaType = "application/json" ,
85+ schema = @ Schema (implementation = CustomErrorResponse .class ))),
86+ @ ApiResponse (responseCode = "401" , description = "헤더값 오류" ,
87+ content = @ Content (mediaType = "application/json" ,
88+ schema = @ Schema (implementation = CustomErrorResponse .class ))),
89+ @ ApiResponse (responseCode = "400" , description = "올바르지 않은 값입니다" ,
90+ content = @ Content (mediaType = "application/json" ,
91+ schema = @ Schema (implementation = CustomErrorResponse .class )))
92+ })
93+ @ GetMapping ("/major" )
94+ List <FeaturedCompanyResponseDto > getFeaturedCompanies (@ LoginUser Long userId ,
95+ @ RequestParam int rank );
96+
2397 @ Operation (
2498 summary = "기업 상세 정보 조회 API" ,
2599 description = "기업 상세 정보 조회 API입니다"
@@ -42,7 +116,7 @@ public interface CompanySwagger {
42116 @ GetMapping ("{companyId}" )
43117 @ SecurityRequirement (name = "JWT" )
44118 GetCompanyResponseDto getCompany (@ LoginUser (required = false ) Long userId ,
45- @ PathVariable Long companyId );
119+ @ PathVariable Long companyId );
46120
47121 @ Operation (
48122 summary = "추천기업 조회 API" ,
@@ -59,4 +133,5 @@ GetCompanyResponseDto getCompany(@LoginUser(required = false) Long userId ,
59133 })
60134 @ GetMapping ("{companyId}/suggestion" )
61135 List <GetSuggestionCompanyResponseDto > getSuggestionCompany (@ PathVariable Long companyId );
136+
62137}
0 commit comments