Files
bookorbit/server/test/e2e/authorization-matrix/route-inventory/routes-02.json
T
neon d21c68d13c feat(books): add an audiobook chapter editor
Add a Chapters tab to edit chapter timing and titles, look chapters up on Audible or in the ebook,
snap starts to pauses, keep a version history and write chapters into M4B, M4A and MP3 files. Add a
chapter health tool with a bulk Audible lookup queue. Editing needs Editor access to the book's
library. Chapter edits keep released iOS playback working by accepting a stale manifest revision
while the track layout is unchanged.

Ref #1120
2026-10-22 04:36:49 +00:00

951 lines
28 KiB
JSON

[
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "findBooks",
"httpMethod": "GET",
"path": "/authors/:id/books",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "getThumbnail",
"httpMethod": "GET",
"path": "/authors/:id/thumbnail",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "getImage",
"httpMethod": "GET",
"path": "/authors/:id/image",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "refreshEnrichment",
"httpMethod": "POST",
"path": "/authors/:id/enrichment/refresh",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "pinMetadataMatch",
"httpMethod": "PUT",
"path": "/authors/:id/metadata-match",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "unpinMetadataMatch",
"httpMethod": "DELETE",
"path": "/authors/:id/metadata-match",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "update",
"httpMethod": "PATCH",
"path": "/authors/:id",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "merge",
"httpMethod": "POST",
"path": "/authors/merge",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "delete",
"httpMethod": "DELETE",
"path": "/authors",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "embedAll",
"httpMethod": "POST",
"path": "/books/embed-all",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "deleteBooks",
"httpMethod": "DELETE",
"path": "/books",
"permissions": ["Permission.LibraryDeleteBooks"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "searchBooks",
"httpMethod": "GET",
"path": "/books/search",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "globalQuery",
"httpMethod": "POST",
"path": "/books/query",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "bulkRefreshMetadata",
"httpMethod": "POST",
"path": "/books/bulk-refresh-metadata",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "bulkReExtractCover",
"httpMethod": "POST",
"path": "/books/bulk-re-extract-cover",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "reExtractCover",
"httpMethod": "POST",
"path": "/books/:id/re-extract-cover",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "exportBooks",
"httpMethod": "POST",
"path": "/books/export",
"permissions": ["Permission.LibraryDownload"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "getCover",
"httpMethod": "GET",
"path": "/books/:id/cover",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "getThumbnail",
"httpMethod": "GET",
"path": "/books/:id/thumbnail",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "serveFile",
"httpMethod": "GET",
"path": "/books/files/:fileId/serve",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "getFileProgress",
"httpMethod": "GET",
"path": "/books/files/:fileId/progress",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "saveFileProgress",
"httpMethod": "POST",
"path": "/books/files/:fileId/progress",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "getAudioProgress",
"httpMethod": "GET",
"path": "/books/:id/audio-progress",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "saveAudioProgress",
"httpMethod": "PATCH",
"path": "/books/:id/audio-progress",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "renameFile",
"httpMethod": "PATCH",
"path": "/books/files/:fileId",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "deleteFile",
"httpMethod": "DELETE",
"path": "/books/files/:fileId",
"permissions": ["Permission.LibraryDeleteBooks"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/audiobook/audiobook.controller.ts",
"className": "AudiobookController",
"methodName": "getManifest",
"httpMethod": "GET",
"path": "/audiobooks/:bookId/manifest",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/audiobook/audiobook.controller.ts",
"className": "AudiobookController",
"methodName": "serveAsset",
"httpMethod": "GET",
"path": "/audiobooks/:bookId/assets/:assetId/content",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/audiobook/audiobook.controller.ts",
"className": "AudiobookController",
"methodName": "getPlaybackState",
"httpMethod": "GET",
"path": "/audiobooks/:bookId/playback-state",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/audiobook/audiobook.controller.ts",
"className": "AudiobookController",
"methodName": "putPlaybackState",
"httpMethod": "PUT",
"path": "/audiobooks/:bookId/playback-state",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/audiobook/audiobook.controller.ts",
"className": "AudiobookController",
"methodName": "deletePlaybackState",
"httpMethod": "DELETE",
"path": "/audiobooks/:bookId/playback-state",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/audiobook/audiobook.controller.ts",
"className": "AudiobookController",
"methodName": "listBookmarks",
"httpMethod": "GET",
"path": "/audiobooks/:bookId/bookmarks",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/audiobook/audiobook.controller.ts",
"className": "AudiobookController",
"methodName": "createBookmark",
"httpMethod": "POST",
"path": "/audiobooks/:bookId/bookmarks",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/audiobook/audiobook.controller.ts",
"className": "AudiobookController",
"methodName": "updateBookmark",
"httpMethod": "PATCH",
"path": "/audiobooks/:bookId/bookmarks/:bookmarkId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/audiobook/audiobook.controller.ts",
"className": "AudiobookController",
"methodName": "deleteBookmark",
"httpMethod": "DELETE",
"path": "/audiobooks/:bookId/bookmarks/:bookmarkId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "getState",
"httpMethod": "GET",
"path": "/books/:bookId/chapters",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "save",
"httpMethod": "PUT",
"path": "/books/:bookId/chapters",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "revert",
"httpMethod": "POST",
"path": "/books/:bookId/chapters/revert",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "writeToFiles",
"httpMethod": "POST",
"path": "/books/:bookId/chapters/write",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "readEmbedded",
"httpMethod": "GET",
"path": "/books/:bookId/chapters/embedded",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "lookup",
"httpMethod": "GET",
"path": "/books/:bookId/chapters/lookup",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "readEbook",
"httpMethod": "GET",
"path": "/books/:bookId/chapters/ebook",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "analyze",
"httpMethod": "POST",
"path": "/books/:bookId/chapters/analyze",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "waveform",
"httpMethod": "GET",
"path": "/books/:bookId/chapters/waveform",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "listVersions",
"httpMethod": "GET",
"path": "/books/:bookId/chapters/versions",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/chapter-editor/chapter-editor.controller.ts",
"className": "ChapterEditorController",
"methodName": "getVersion",
"httpMethod": "GET",
"path": "/books/:bookId/chapters/versions/:versionId",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "updateMetadata",
"httpMethod": "PATCH",
"path": "/books/:id/metadata",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "updateMetadataLocks",
"httpMethod": "PATCH",
"path": "/books/:id/metadata-locks",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "refreshMetadata",
"httpMethod": "POST",
"path": "/books/:id/refresh-metadata",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "getWriteLog",
"httpMethod": "GET",
"path": "/books/:id/write-log",
"permissions": ["Permission.LibraryEditMetadata"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "getKoboState",
"httpMethod": "GET",
"path": "/books/:id/kobo-state",
"permissions": ["Permission.KoboSync"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "getBookProgress",
"httpMethod": "GET",
"path": "/books/:id/progress",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "setReadStatus",
"httpMethod": "PATCH",
"path": "/books/:id/status",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "getDetail",
"httpMethod": "GET",
"path": "/books/:id",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "getConfig",
"httpMethod": "GET",
"path": "/book-metadata-fetch/config",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "listLibraryConfigs",
"httpMethod": "GET",
"path": "/book-metadata-fetch/config/libraries",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "updateConfig",
"httpMethod": "PUT",
"path": "/book-metadata-fetch/config",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "getLibraryConfig",
"httpMethod": "GET",
"path": "/book-metadata-fetch/config/libraries/:id",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "updateLibraryConfig",
"httpMethod": "PUT",
"path": "/book-metadata-fetch/config/libraries/:id",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "getStatus",
"httpMethod": "GET",
"path": "/book-metadata-fetch/status",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "triggerGlobal",
"httpMethod": "POST",
"path": "/book-metadata-fetch/run",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "triggerForLibrary",
"httpMethod": "POST",
"path": "/book-metadata-fetch/run/:libraryId",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "pause",
"httpMethod": "POST",
"path": "/book-metadata-fetch/pause",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "resume",
"httpMethod": "POST",
"path": "/book-metadata-fetch/resume",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "cancel",
"httpMethod": "POST",
"path": "/book-metadata-fetch/cancel",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "retryFailed",
"httpMethod": "POST",
"path": "/book-metadata-fetch/retry-failed",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "previewCount",
"httpMethod": "POST",
"path": "/book-metadata-fetch/preview-count",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "previewBreakdown",
"httpMethod": "POST",
"path": "/book-metadata-fetch/preview-breakdown",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "previewBooks",
"httpMethod": "POST",
"path": "/book-metadata-fetch/preview-books",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-metadata-fetch/book-metadata-fetch.controller.ts",
"className": "BookMetadataFetchController",
"methodName": "getFailedItems",
"httpMethod": "GET",
"path": "/book-metadata-fetch/failed",
"permissions": ["Permission.ManageMetadataConfig"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/bookmark/bookmark.controller.ts",
"className": "BookmarkController",
"methodName": "getBookmarks",
"httpMethod": "GET",
"path": "/books/:bookId/bookmarks",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/bookmark/bookmark.controller.ts",
"className": "BookmarkController",
"methodName": "createBookmark",
"httpMethod": "POST",
"path": "/books/:bookId/bookmarks",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/bookmark/bookmark.controller.ts",
"className": "BookmarkController",
"methodName": "updateBookmark",
"httpMethod": "PATCH",
"path": "/books/:bookId/bookmarks/:bookmarkId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/bookmark/bookmark.controller.ts",
"className": "BookmarkController",
"methodName": "deleteBookmark",
"httpMethod": "DELETE",
"path": "/books/:bookId/bookmarks/:bookmarkId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/catalog/catalog.controller.ts",
"className": "CatalogController",
"methodName": "searchAuthors",
"httpMethod": "GET",
"path": "/metadata/authors",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/catalog/catalog.controller.ts",
"className": "CatalogController",
"methodName": "searchGenres",
"httpMethod": "GET",
"path": "/metadata/genres",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/catalog/catalog.controller.ts",
"className": "CatalogController",
"methodName": "searchTags",
"httpMethod": "GET",
"path": "/metadata/tags",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/catalog/catalog.controller.ts",
"className": "CatalogController",
"methodName": "searchNarrators",
"httpMethod": "GET",
"path": "/metadata/narrators",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/catalog/catalog.controller.ts",
"className": "CatalogController",
"methodName": "searchPublishers",
"httpMethod": "GET",
"path": "/metadata/publishers",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
}
]