- API: add POST /series/mark-read to batch mark all books in a series - API: add GET /series cross-library endpoint with search, library and status filters - API: add library_id to SeriesItem response - Backoffice: mark book as read/unread button on book detail page - Backoffice: mark series as read/unread button on series cards - Backoffice: new /series top-level page with search and filters - Backoffice: new /libraries/[id]/series/[name] series detail page - Backoffice: opacity on fully read books and series cards - Backoffice: live search with debounce on books and series pages - Backoffice: reading status filter on books and series pages - Fix $2 -> $1 parameter binding in mark-series-read SQL Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
18 lines
628 B
TypeScript
18 lines
628 B
TypeScript
import { NextRequest, NextResponse } from "next/server";
|
|
import { updateReadingProgress } from "@/lib/api";
|
|
|
|
export async function PATCH(
|
|
request: NextRequest,
|
|
{ params }: { params: Promise<{ bookId: string }> }
|
|
) {
|
|
const { bookId } = await params;
|
|
try {
|
|
const body = await request.json();
|
|
const data = await updateReadingProgress(bookId, body.status, body.current_page ?? undefined);
|
|
return NextResponse.json(data);
|
|
} catch (error) {
|
|
const message = error instanceof Error ? error.message : "Failed to update reading progress";
|
|
return NextResponse.json({ error: message }, { status: 500 });
|
|
}
|
|
}
|