11package hanium .modic .backend .web .post .controller ;
22
3+ import static hanium .modic .backend .common .error .ErrorCode .*;
34import static org .springframework .http .HttpStatus .*;
45
56import java .util .List ;
2021import hanium .modic .backend .common .annotation .user .CurrentUser ;
2122import hanium .modic .backend .common .response .AppResponse ;
2223import hanium .modic .backend .common .response .PageResponse ;
24+ import hanium .modic .backend .common .swagger .ApiErrorMapping ;
2325import hanium .modic .backend .domain .post .enums .PostType ;
2426import hanium .modic .backend .domain .post .service .PostService ;
2527import hanium .modic .backend .domain .postReview .service .PostReviewAuthorizationService ;
@@ -95,12 +97,12 @@ public ResponseEntity<AppResponse<GetPostResponse>> getPost(@PathVariable Long i
9597 summary = "게시글 목록 조회 API" ,
9698 description = """
9799 게시글 목록을 조회합니다. 정렬 기준, 페이지 번호, 페이지 크기, 포스트 타입을 입력받습니다.
98- postType은 (ALL, ORIGINAL, AI_DERIVED)가 존재한다.
99- """ ,
100- responses = {
101- @ ApiResponse (responseCode = "400" , description = "사용자 입력 오류[C-001]" )
102- }
100+ postType은 (ALL, ORIGINAL, AI_DERIVED, HOTTEST)가 존재한다.
101+ """
103102 )
103+ @ ApiErrorMapping ({
104+ USER_INPUT_EXCEPTION
105+ })
104106 public ResponseEntity <AppResponse <PageResponse <GetPostsResponse >>> getPosts (
105107 @ RequestParam (required = false , defaultValue = "0" ) @ Min (value = 0 , message = "페이지 번호는 0 이상이어야 합니다" ) Integer page ,
106108 @ RequestParam (required = false , defaultValue = "10" ) @ Min (value = 10 , message = "페이지 크기는 10 이상이어야 합니다." ) @ Max (value = 20 , message = "페이지 크기는 20 이하여야 합니다." ) Integer size ,
@@ -110,13 +112,32 @@ public ResponseEntity<AppResponse<PageResponse<GetPostsResponse>>> getPosts(
110112 return ResponseEntity .ok (AppResponse .ok (PageResponse .of (response )));
111113 }
112114
115+ @ GetMapping ("/following" )
116+ @ Operation (
117+ summary = "팔로우한 사용자의 게시글 목록 조회 API" ,
118+ description = """
119+ 팔로우한 사용자의 게시글 목록을 조회합니다. 페이지 번호, 페이지 크기, 포스트 타입을 입력받습니다.
120+ """
121+ )
122+ @ ApiErrorMapping ({
123+ USER_INPUT_EXCEPTION
124+ })
125+ public ResponseEntity <AppResponse <PageResponse <GetPostsResponse >>> getFollowingPosts (
126+ @ RequestParam (required = false , defaultValue = "0" ) @ Min (value = 0 , message = "페이지 번호는 0 이상이어야 합니다" ) Integer page ,
127+ @ RequestParam (required = false , defaultValue = "10" ) @ Min (value = 10 , message = "페이지 크기는 10 이상이어야 합니다." ) @ Max (value = 20 , message = "페이지 크기는 20 이하여야 합니다." ) Integer size ,
128+ @ CurrentUser UserEntity user
129+ ) {
130+ Page <GetPostsResponse > response = postService .getFollowingPosts (user .getId (), page , size );
131+ return ResponseEntity .ok (AppResponse .ok (PageResponse .of (response )));
132+ }
133+
113134 @ GetMapping ("/search" )
114135 @ Operation (
115136 summary = "게시글 검색 API" ,
116137 description = """
117- 제목 또는 설명에 검색어가 포함된 게시글을 조회합니다.
118- 검색 대상은 postType(ALL, ORIGINAL, AI_DERIVED)에 따라 달라집니다.
119- """ ,
138+ 제목 또는 설명에 검색어가 포함된 게시글을 조회합니다.
139+ 검색 대상은 postType(ALL, ORIGINAL, AI_DERIVED)에 따라 달라집니다.
140+ """ ,
120141 responses = {
121142 @ ApiResponse (responseCode = "400" , description = "사용자 입력 오류[C-001]" )
122143 }
0 commit comments