Archived
feat: implement mobile reader
- implement mobile epub reader
This commit is contained in:
@@ -1,55 +1,31 @@
|
||||
import api from "./client";
|
||||
import type {
|
||||
Bookmark,
|
||||
Note,
|
||||
CreateBookmarkPayload,
|
||||
CreateNotePayload,
|
||||
PaginatedResponse,
|
||||
} from "@cloud-reader/shared";
|
||||
import type { PaginatedResponse } from "@cloud-reader/shared";
|
||||
import type { Bookmark, CreateMarkerPayload } from "../types";
|
||||
|
||||
export function fetchBookmarks(
|
||||
bookId?: string,
|
||||
export async function fetchBookmarks(
|
||||
ebookId?: string | number,
|
||||
): Promise<PaginatedResponse<Bookmark>> {
|
||||
const params = bookId ? { book: bookId } : {};
|
||||
return api
|
||||
.get<PaginatedResponse<Bookmark>>("/api/annotations/bookmarks/", { params })
|
||||
.then((res) => res.data);
|
||||
const params: Record<string, string> = {};
|
||||
if (ebookId != null && ebookId !== "") {
|
||||
params.ebook = String(ebookId);
|
||||
}
|
||||
const { data } = await api.get<PaginatedResponse<Bookmark>>(
|
||||
"/api/annotations/bookmarks/",
|
||||
{ params },
|
||||
);
|
||||
return data;
|
||||
}
|
||||
|
||||
export function createBookmark(
|
||||
payload: CreateBookmarkPayload,
|
||||
export async function createMarker(
|
||||
payload: CreateMarkerPayload,
|
||||
): Promise<Bookmark> {
|
||||
return api
|
||||
.post<Bookmark>("/api/annotations/bookmarks/", payload)
|
||||
.then((res) => res.data);
|
||||
const { data } = await api.post<Bookmark>(
|
||||
"/api/annotations/bookmarks/",
|
||||
payload,
|
||||
);
|
||||
return data;
|
||||
}
|
||||
|
||||
export function deleteBookmark(id: string): Promise<void> {
|
||||
return api.delete(`/api/annotations/bookmarks/${id}/`).then(() => {});
|
||||
export async function deleteBookmark(id: string): Promise<void> {
|
||||
await api.delete(`/api/annotations/bookmarks/${id}/`);
|
||||
}
|
||||
|
||||
export function fetchNotes(bookId?: string): Promise<PaginatedResponse<Note>> {
|
||||
const params = bookId ? { book: bookId } : {};
|
||||
return api
|
||||
.get<PaginatedResponse<Note>>("/api/annotations/notes/", { params })
|
||||
.then((res) => res.data);
|
||||
}
|
||||
|
||||
export function createNote(payload: CreateNotePayload): Promise<Note> {
|
||||
return api
|
||||
.post<Note>("/api/annotations/notes/", payload)
|
||||
.then((res) => res.data);
|
||||
}
|
||||
|
||||
export function updateNote(
|
||||
id: string,
|
||||
content: string,
|
||||
): Promise<Note> {
|
||||
return api
|
||||
.patch<Note>(`/api/annotations/notes/${id}/`, { content })
|
||||
.then((res) => res.data);
|
||||
}
|
||||
|
||||
export function deleteNote(id: string): Promise<void> {
|
||||
return api.delete(`/api/annotations/notes/${id}/`).then(() => {});
|
||||
}
|
||||
Reference in New Issue
Block a user