Implement: US: Book Search and Discovery (#13)

Reviewed and merged by Reid (Hermes Reviewer)

Co-authored-by: crisleo-hermes <hermes@codescripters.org>
Co-committed-by: crisleo-hermes <hermes@codescripters.org>
This commit was merged in pull request #13.
This commit is contained in:
2026-05-26 06:21:32 +00:00
committed by reid
parent f84a593c5d
commit 332b539880
8 changed files with 975 additions and 37 deletions
+16 -1
View File
@@ -1,5 +1,5 @@
import api from "./client";
import type { EBookDetail, EBookListItem, ReadingProgress, ReadingSettings } from "../types/book";
import type { ContentResponse, EBookDetail, EBookListItem, ReadingProgress, ReadingSettings, TocResponse } from "../types/book";
export const booksApi = {
async getEBooks(): Promise<EBookListItem[]> {
@@ -34,6 +34,21 @@ export const booksApi = {
await api.delete(`/books/ebooks/${id}/`);
},
async processEBook(id: number): Promise<{ status: string }> {
const { data } = await api.post<{ status: string }>(`/books/ebooks/${id}/process/`);
return data;
},
async getToc(id: number): Promise<TocResponse> {
const { data } = await api.get<TocResponse>(`/books/ebooks/${id}/toc/`);
return data;
},
async getContent(id: number, page: number): Promise<ContentResponse> {
const { data } = await api.get<ContentResponse>(`/books/ebooks/${id}/content/?page=${page}`);
return data;
},
async getProgress(ebookId: number): Promise<ReadingProgress> {
const { data } = await api.get<ReadingProgress>(`/books/ebooks/${ebookId}/progress/`);
return data;