Files
bookorbit/server/test/e2e/authorization-matrix/route-inventory/routes-10.json
T
neon 3ef4a22c37 fix(scanner): play disc-folder audiobook tracks disc by disc
The walker sorted a book's files by file name, so tracks in disc folders that reuse names, such as
CD 1/01.mp3 and CD 2/01.mp3, interleaved in playback, merged chapters, and written track numbers.
Order them by their whole path instead, everywhere a track order is chosen.

A rescan that only reorders a book's existing tracks now moves every audio bookmark and the
listening progress percentage to the same moment of the same track, and rebuilds merged chapters.
Disc folders are never skipped by incremental scans, so existing libraries are fixed by their next
scan.

Also inventory the notebook and dashboard highlights routes in the authorization matrix, and pin the
app locale in two date tests that depended on the machine's locale.
2026-10-07 18:31:33 +00:00

927 lines
26 KiB
JSON

[
{
"file": "server/src/modules/book-request/download-clients/download-client.controller.ts",
"className": "DownloadClientController",
"methodName": "removeOrphan",
"httpMethod": "DELETE",
"path": "/admin/download-clients/:id/reconciliation/:hash",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/collection/collection.controller.ts",
"className": "CollectionController",
"methodName": "removePodcasts",
"httpMethod": "DELETE",
"path": "/collections/:id/podcasts",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/podcast/podcast.controller.ts",
"className": "PodcastController",
"methodName": "removeAllDownloads",
"httpMethod": "DELETE",
"path": "/podcasts/:podcastId/downloads",
"permissions": ["Permission.PodcastDownload"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts-admin.controller.ts",
"className": "TtsAdminController",
"methodName": "deleteProvider",
"httpMethod": "DELETE",
"path": "/tts/admin/providers/:id",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "deletePosition",
"httpMethod": "DELETE",
"path": "/tts/position/:bookFileId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "deleteBookPreferences",
"httpMethod": "DELETE",
"path": "/tts/preferences/book/:bookId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/upload/upload-session.controller.ts",
"className": "UploadSessionController",
"methodName": "cancel",
"httpMethod": "DELETE",
"path": "/uploads/:id",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-request/download-clients/download-client.controller.ts",
"className": "DownloadClientController",
"methodName": "reconcile",
"httpMethod": "GET",
"path": "/admin/download-clients/:id/reconciliation",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/annotation/annotation-hub.controller.ts",
"className": "AnnotationHubController",
"methodName": "overview",
"httpMethod": "GET",
"path": "/annotations/overview",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/authors/authors.controller.ts",
"className": "AuthorsController",
"methodName": "findJumpBuckets",
"httpMethod": "GET",
"path": "/authors/jump-buckets",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "downloadAudiolessEpub",
"httpMethod": "GET",
"path": "/books/files/:fileId/audioless-epub/download",
"permissions": ["Permission.LibraryDownload"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/collection/collection.controller.ts",
"className": "CollectionController",
"methodName": "getPodcasts",
"httpMethod": "GET",
"path": "/collections/:id/podcasts",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/collection/collection.controller.ts",
"className": "CollectionController",
"methodName": "findPodcastMembership",
"httpMethod": "GET",
"path": "/collections/podcast-membership",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/reader/epub/epub.controller.ts",
"className": "EpubController",
"methodName": "getMediaOverlay",
"httpMethod": "GET",
"path": "/epub/:bookId/media-overlay",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/reader/epub/epub.controller.ts",
"className": "EpubController",
"methodName": "getMediaOverlayFile",
"httpMethod": "GET",
"path": "/epub/:bookId/media-overlay/file/*",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/podcast/podcast.controller.ts",
"className": "PodcastDownloadBatchController",
"methodName": "listActive",
"httpMethod": "GET",
"path": "/podcast-download-batches",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/podcast/podcast.controller.ts",
"className": "PodcastDownloadBatchController",
"methodName": "findOne",
"httpMethod": "GET",
"path": "/podcast-download-batches/:batchId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/podcast/podcast.controller.ts",
"className": "PodcastLibraryController",
"methodName": "getJob",
"httpMethod": "GET",
"path": "/podcast-libraries/:libraryId/jobs/:jobId",
"permissions": ["Permission.PodcastManageFeeds"],
"libraryAccess": ["'editor'"],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/search/search.controller.ts",
"className": "SearchController",
"methodName": "search",
"httpMethod": "GET",
"path": "/search",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/smart-scope/smart-scope.controller.ts",
"className": "SmartScopeController",
"methodName": "queryEpisodes",
"httpMethod": "GET",
"path": "/smart-scopes/:id/episodes",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts-admin.controller.ts",
"className": "TtsAdminController",
"methodName": "getAllProviders",
"httpMethod": "GET",
"path": "/tts/admin/providers",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts-admin.controller.ts",
"className": "TtsAdminController",
"methodName": "discoverVoices",
"httpMethod": "GET",
"path": "/tts/admin/providers/:id/voices/discover",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "getPosition",
"httpMethod": "GET",
"path": "/tts/position/:bookFileId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "getUserPreferences",
"httpMethod": "GET",
"path": "/tts/preferences",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "getBookPreferences",
"httpMethod": "GET",
"path": "/tts/preferences/book/:bookId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "getProviders",
"httpMethod": "GET",
"path": "/tts/providers",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "getChapterText",
"httpMethod": "GET",
"path": "/tts/text/:bookFileId/:chapterIndex",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "getVoices",
"httpMethod": "GET",
"path": "/tts/voices",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/upload/upload-session.controller.ts",
"className": "UploadSessionController",
"methodName": "get",
"httpMethod": "GET",
"path": "/uploads/:id",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/upload/upload-session.controller.ts",
"className": "UploadSessionController",
"methodName": "capabilities",
"httpMethod": "GET",
"path": "/uploads/capabilities",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
"className": "UserStatisticsController",
"methodName": "getActivityCalendar",
"httpMethod": "GET",
"path": "/user-statistics/activity-calendar/:year",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
"className": "UserStatisticsController",
"methodName": "getActivityDay",
"httpMethod": "GET",
"path": "/user-statistics/activity-days/:day",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
"className": "UserStatisticsController",
"methodName": "getActivityCompletionSpeed",
"httpMethod": "GET",
"path": "/user-statistics/activity-details/completion-speed",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
"className": "UserStatisticsController",
"methodName": "getActivityGenreTime",
"httpMethod": "GET",
"path": "/user-statistics/activity-details/genre-time",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
"className": "UserStatisticsController",
"methodName": "getActivityPaceDetail",
"httpMethod": "GET",
"path": "/user-statistics/activity-details/pace",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
"className": "UserStatisticsController",
"methodName": "getActivitySessionPatterns",
"httpMethod": "GET",
"path": "/user-statistics/activity-details/session-patterns",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/user-statistics/user-statistics.controller.ts",
"className": "UserStatisticsController",
"methodName": "getActivityOverview",
"httpMethod": "GET",
"path": "/user-statistics/activity-overview",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/watch-download/watch-download.controller.ts",
"className": "WatchDownloadController",
"methodName": "downloadCover",
"httpMethod": "GET",
"path": "/watch-downloads/books/:bookId/cover",
"permissions": [],
"libraryAccess": [],
"isPublic": true,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/watch-download/watch-download.controller.ts",
"className": "WatchDownloadController",
"methodName": "downloadFile",
"httpMethod": "GET",
"path": "/watch-downloads/files/:fileId",
"permissions": [],
"libraryAccess": [],
"isPublic": true,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/watch-download/watch-download.controller.ts",
"className": "WatchDownloadController",
"methodName": "downloadMediaOverlayFile",
"httpMethod": "GET",
"path": "/watch-downloads/media-overlay/files/:index",
"permissions": [],
"libraryAccess": [],
"isPublic": true,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book/book.controller.ts",
"className": "BookController",
"methodName": "updateReadAloudSync",
"httpMethod": "PATCH",
"path": "/books/:id/read-aloud-sync",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/achievement/achievement.controller.ts",
"className": "AchievementController",
"methodName": "acknowledgeCelebration",
"httpMethod": "POST",
"path": "/achievements/celebrations/:claimId/acknowledge",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": ["JwtAuthGuard"]
},
{
"file": "server/src/modules/achievement/achievement.controller.ts",
"className": "AchievementController",
"methodName": "claimCelebration",
"httpMethod": "POST",
"path": "/achievements/celebrations/claim",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": ["JwtAuthGuard"]
},
{
"file": "server/src/modules/book-request/download-clients/download-client.controller.ts",
"className": "DownloadClientController",
"methodName": "adopt",
"httpMethod": "POST",
"path": "/admin/download-clients/:id/reconciliation/:hash/adopt",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/collection/collection.controller.ts",
"className": "CollectionController",
"methodName": "addPodcasts",
"httpMethod": "POST",
"path": "/collections/:id/podcasts",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/dashboard/dashboard.controller.ts",
"className": "DashboardController",
"methodName": "refresh",
"httpMethod": "POST",
"path": "/dashboard/refresh",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/podcast/podcast.controller.ts",
"className": "PodcastController",
"methodName": "downloadLatest",
"httpMethod": "POST",
"path": "/podcasts/:podcastId/download-latest",
"permissions": ["Permission.PodcastDownload"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/podcast/podcast.controller.ts",
"className": "PodcastController",
"methodName": "markAllPlayed",
"httpMethod": "POST",
"path": "/podcasts/:podcastId/mark-all-played",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/podcast/podcast.controller.ts",
"className": "PodcastController",
"methodName": "queueAll",
"httpMethod": "POST",
"path": "/podcasts/:podcastId/queue-all",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts-admin.controller.ts",
"className": "TtsAdminController",
"methodName": "addProvider",
"httpMethod": "POST",
"path": "/tts/admin/providers",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts-admin.controller.ts",
"className": "TtsAdminController",
"methodName": "testProvider",
"httpMethod": "POST",
"path": "/tts/admin/providers/:id/test",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "previewVoice",
"httpMethod": "POST",
"path": "/tts/preview",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "synthesize",
"httpMethod": "POST",
"path": "/tts/synthesize",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "synthesizeCaptioned",
"httpMethod": "POST",
"path": "/tts/synthesize/captioned",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/upload/upload-session.controller.ts",
"className": "UploadSessionController",
"methodName": "create",
"httpMethod": "POST",
"path": "/uploads",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/upload/upload-session.controller.ts",
"className": "UploadSessionController",
"methodName": "appendChunk",
"httpMethod": "POST",
"path": "/uploads/:id/chunks",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/upload/upload-session.controller.ts",
"className": "UploadSessionController",
"methodName": "complete",
"httpMethod": "POST",
"path": "/uploads/:id/complete",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/watch-download/watch-download.controller.ts",
"className": "WatchDownloadController",
"methodName": "create",
"httpMethod": "POST",
"path": "/watch-downloads",
"permissions": ["Permission.LibraryDownload"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/watch-download/watch-download.controller.ts",
"className": "WatchDownloadController",
"methodName": "createMediaOverlay",
"httpMethod": "POST",
"path": "/watch-downloads/media-overlay",
"permissions": ["Permission.LibraryDownload"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts-admin.controller.ts",
"className": "TtsAdminController",
"methodName": "updateProvider",
"httpMethod": "PUT",
"path": "/tts/admin/providers/:id",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts-admin.controller.ts",
"className": "TtsAdminController",
"methodName": "reorderProviders",
"httpMethod": "PUT",
"path": "/tts/admin/providers/order",
"permissions": ["Permission.ManageAppSettings"],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "savePosition",
"httpMethod": "PUT",
"path": "/tts/position/:bookFileId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "saveUserPreferences",
"httpMethod": "PUT",
"path": "/tts/preferences",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/tts/tts.controller.ts",
"className": "TtsController",
"methodName": "saveBookPreferences",
"httpMethod": "PUT",
"path": "/tts/preferences/book/:bookId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-journal/book-journal.controller.ts",
"className": "BookJournalController",
"methodName": "list",
"httpMethod": "GET",
"path": "/books/:bookId/journal",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-journal/book-journal.controller.ts",
"className": "BookJournalController",
"methodName": "create",
"httpMethod": "POST",
"path": "/books/:bookId/journal",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-journal/book-journal.controller.ts",
"className": "BookJournalController",
"methodName": "update",
"httpMethod": "PATCH",
"path": "/books/:bookId/journal/:clientId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-journal/book-journal.controller.ts",
"className": "BookJournalController",
"methodName": "trash",
"httpMethod": "DELETE",
"path": "/books/:bookId/journal/:clientId",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-journal/book-journal.controller.ts",
"className": "BookJournalController",
"methodName": "restore",
"httpMethod": "POST",
"path": "/books/:bookId/journal/:clientId/restore",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/book-journal/book-journal.controller.ts",
"className": "BookJournalController",
"methodName": "purge",
"httpMethod": "DELETE",
"path": "/books/:bookId/journal/:clientId/permanent",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/notebook/notebook.controller.ts",
"className": "NotebookController",
"methodName": "entries",
"httpMethod": "GET",
"path": "/notebook/entries",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/notebook/notebook.controller.ts",
"className": "NotebookController",
"methodName": "overview",
"httpMethod": "GET",
"path": "/notebook/overview",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/notebook/notebook.controller.ts",
"className": "NotebookController",
"methodName": "books",
"httpMethod": "GET",
"path": "/notebook/books",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/notebook/notebook.controller.ts",
"className": "NotebookController",
"methodName": "review",
"httpMethod": "GET",
"path": "/notebook/review",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/notebook/notebook.controller.ts",
"className": "NotebookController",
"methodName": "onThisDay",
"httpMethod": "GET",
"path": "/notebook/on-this-day",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/notebook/notebook.controller.ts",
"className": "NotebookController",
"methodName": "trash",
"httpMethod": "GET",
"path": "/notebook/trash",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
},
{
"file": "server/src/modules/dashboard/dashboard.controller.ts",
"className": "DashboardController",
"methodName": "getHighlights",
"httpMethod": "GET",
"path": "/dashboard/widgets/highlights",
"permissions": [],
"libraryAccess": [],
"isPublic": false,
"allowDefault": false,
"useGuards": []
}
]