Class StorybookController

java.lang.Object
inha.dayoook_e.storybook.api.controller.StorybookController

@RestController @RequestMapping("/api/v1/storybooks") public class StorybookController extends Object
StorybookController은 동화 관련 엔드포인트를 처리.
  • Constructor Details

    • StorybookController

      public StorybookController()
  • Method Details

    • getStorybooks

      @GetMapping public BaseResponse<org.springframework.data.domain.Slice<StorybookSearchPageResponse>> getStorybooks(@AuthenticationPrincipal User user, @Validated @ModelAttribute SearchCond searchCond, @RequestParam("page") Integer page)
      동화 조회 API

      동화를 조회합니다.

      Parameters:
      searchCond - 검색 조건
      page - 페이지 번호
      Returns:
      동화 조회 결과를 포함하는 BaseResponse<Slice>
    • getStorybook

      @GetMapping("/{storybookId}") public BaseResponse<StorybookSearchResponse> getStorybook(@AuthenticationPrincipal User user, @RequestParam("pageNumber") Integer pageNumber, @PathVariable("storybookId") Integer storybookId)
      동화 상세 조회 API

      동화를 상세 조회합니다.

      Parameters:
      user - 로그인한 사용자
      pageNumber - 페이지 번호
      storybookId - 동화 id
      Returns:
      동화 상세 조회 결과를 포함하는 BaseResponse
    • createStorybook

      @PostMapping(consumes="multipart/form-data") @PreAuthorize("hasRole(\'ROLE_ADMIN\')") public BaseResponse<StorybookResponse> createStorybook(@AuthenticationPrincipal User user, @Validated @RequestPart("storybook") CreateStorybookRequest createStorybookRequest, @RequestPart("thumbnail") org.springframework.web.multipart.MultipartFile thumbnail, @RequestPart("pages") List<org.springframework.web.multipart.MultipartFile> pageImages)
      동화 생성 API

      동화를 생성합니다.

      Parameters:
      user - 로그인한 사용자
      createStorybookRequest - 동화 생성 요청
      thumbnail - 썸네일 이미지
      pageImages - 페이지 이미지 리스트
      Returns:
      동화 생성 결과를 포함하는 BaseResponse
    • toggleLike

      @PostMapping("/{storybookId}/toggle-like") public BaseResponse<LikedTuteeStorybookProgressResponse> toggleLike(@AuthenticationPrincipal User user, @PathVariable("storybookId") Integer storybookId)
      동화 좋아요 토글 API

      좋아요를 토글합니다.

      Parameters:
      user - 로그인한 사용자
      storybookId - 동화 id
      Returns:
      좋아요 토글 결과를 포함하는 BaseResponse
    • completeStorybook

      @PostMapping("/{storybookId}/complete") public BaseResponse<StorybookResponse> completeStorybook(@AuthenticationPrincipal User user, @PathVariable("storybookId") Integer storybookId)
      동화 완료 API

      동화 듣는 것을 완료합니다.

      Parameters:
      user - 로그인한 사용자
      storybookId - 동화 id
      Returns:
      동화 완료 결과를 포함하는 BaseResponse
    • updateLastReadPage

      @PostMapping("/{storybookId}/last-read-page") public BaseResponse<LastReadPageStorybookResponse> updateLastReadPage(@AuthenticationPrincipal User user, @PathVariable("storybookId") Integer storybookId, @RequestParam("pageNumber") Integer pageNumber)
      마지막 읽은 페이지 업데이트 API

      동화의 마지막으로 읽은 페이지 번호를 업데이트합니다.

      Parameters:
      user - 로그인한 사용자
      storybookId - 동화 id
      pageNumber - 페이지 번호
      Returns:
      마지막 읽은 페이지 업데이트 결과를 포함하는 BaseResponse