Skip to content

Commit

Permalink
docs: 나의 토크방 모아보기 API REST Docs 작성 (#105)
Browse files Browse the repository at this point in the history
  • Loading branch information
AHNYUNKI committed May 20, 2024
1 parent 561d346 commit 7216764
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 1 deletion.
15 changes: 14 additions & 1 deletion src/docs/asciidoc/api/talkroom/talkroom.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -61,4 +61,17 @@ include::{snippets}/talkroom/delete/path-parameters.adoc[]
==== HTTP Response

include::{snippets}/talkroom/delete/http-response.adoc[]
include::{snippets}/talkroom/delete/response-fields.adoc[]
include::{snippets}/talkroom/delete/response-fields.adoc[]

[[talkroom-findAllByUser]]
=== 나의 토크방 모아보기

==== HTTP Request

include::{snippets}/talkroom/findUserTalkRoom/http-request.adoc[]
include::{snippets}/talkroom/findUserTalkRoom/query-parameters.adoc[]

==== HTTP Response

include::{snippets}/talkroom/findUserTalkRoom/http-response.adoc[]
include::{snippets}/talkroom/findUserTalkRoom/response-fields.adoc[]
Original file line number Diff line number Diff line change
Expand Up @@ -395,6 +395,94 @@ void deleteTalkRoom() throws Exception {
));
}

@Test
@DisplayName("유저 본인이 작성한 토론방 조회 API")
void findAllTalkRoomsOwner() throws Exception {
List<TalkRoomFindAllResponse> talkRoomFindAllResponses = createTalkRoomFindAllResponses();

PageResponse<TalkRoomFindAllResponse> pageResponse = PageResponse.<TalkRoomFindAllResponse>builder()
.queryResponse(talkRoomFindAllResponses)
.size(10)
.totalCount(10)
.build();

TalkRoomPageResponse response = TalkRoomPageResponse.builder()
.response(pageResponse)
.userLikeTalkRoomIds(null)
.build();

given(talkRoomService.findUserTalkRoom(anyLong(), any(Integer.class), anyString(), anyLong()))
.willReturn(response);

mockMvc.perform(
get("/v1/users/talk-rooms")
.param("page", "1")
.param("size", "10")
.param("order", "sort")
.contentType(MediaType.APPLICATION_JSON)
)
.andDo(print())
.andExpect(status().isOk())
.andDo(document("talkroom/findUserTalkRoom",
preprocessRequest(prettyPrint()),
preprocessResponse(prettyPrint()),
queryParameters(
parameterWithName("page")
.description("페이지 번호"),
parameterWithName("size")
.description("페이지 사이즈"),
parameterWithName("order")
.description(
"정렬 기준 : recent(최신순), recommend(좋아요순)")
),
responseFields(
fieldWithPath("code").type(JsonFieldType.NUMBER)
.description("코드"),
fieldWithPath("status").type(JsonFieldType.STRING)
.description("상태"),
fieldWithPath("message").type(JsonFieldType.STRING)
.description("메시지"),
fieldWithPath("data").type(JsonFieldType.OBJECT)
.description("응답 데이터"),
fieldWithPath("data.userLikeTalkRoomIds").type(JsonFieldType.ARRAY)
.description("로그인한 유저가 좋아요 누른 토론방 ID").optional(),
fieldWithPath("data.response").type(JsonFieldType.OBJECT)
.description("토론방과 관련된 데이터"),
fieldWithPath("data.response.totalCount").type(JsonFieldType.NUMBER)
.description("토론방 총 개수"),
fieldWithPath("data.response.size").type(JsonFieldType.NUMBER)
.description("토론방 반환 사이즈"),
fieldWithPath("data.response.queryResponse").type(JsonFieldType.ARRAY)
.description("토론방 데이터"),
fieldWithPath("data.response.queryResponse[].id").type(JsonFieldType.NUMBER)
.description("토론방 ID"),
fieldWithPath("data.response.queryResponse[].profileImage").type(JsonFieldType.STRING)
.description("유저 이미지 URL"),
fieldWithPath("data.response.queryResponse[].username").type(JsonFieldType.STRING)
.description("유저 이름"),
fieldWithPath("data.response.queryResponse[].title").type(JsonFieldType.STRING)
.description("토론방 제목"),
fieldWithPath("data.response.queryResponse[].content").type(JsonFieldType.STRING)
.description("토론방 본문"),
fieldWithPath("data.response.queryResponse[].bookName").type(JsonFieldType.STRING)
.description("책 제목"),
fieldWithPath("data.response.queryResponse[].bookAuthor").type(JsonFieldType.STRING)
.description("책 저자"),
fieldWithPath("data.response.queryResponse[].bookThumbnail").type(JsonFieldType.STRING)
.description("책 이미지 URL"),
fieldWithPath("data.response.queryResponse[].likeCount").type(JsonFieldType.NUMBER)
.description("토론방 좋아요 개수"),
fieldWithPath("data.response.queryResponse[].readingStatuses").type(JsonFieldType.ARRAY)
.description("토론방 참가 조건"),
fieldWithPath("data.response.queryResponse[].registeredDateTime").type(
JsonFieldType.ARRAY)
.description("토론방 생성 시간")

)
));

}

private List<TalkRoomFindAllResponse> createTalkRoomFindAllResponses() {
return IntStream.range(1, 11)
.mapToObj(i -> TalkRoomFindAllResponse.builder()
Expand Down

0 comments on commit 7216764

Please sign in to comment.