[ { "file": "server/src/modules/book-duplicates/book-duplicates.controller.ts", "className": "BookDuplicatesController", "methodName": "listDismissals", "httpMethod": "GET", "path": "/book-duplicates/dismissals", "permissions": ["Permission.LibraryDeleteBooks"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-duplicates/book-duplicates.controller.ts", "className": "BookDuplicatesController", "methodName": "dismissGroup", "httpMethod": "POST", "path": "/book-duplicates/dismissals", "permissions": ["Permission.LibraryDeleteBooks"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-duplicates/book-duplicates.controller.ts", "className": "BookDuplicatesController", "methodName": "restoreDismissal", "httpMethod": "DELETE", "path": "/book-duplicates/dismissals/:bookIdA/:bookIdB", "permissions": ["Permission.LibraryDeleteBooks"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/chapter-health/chapter-health.controller.ts", "className": "ChapterHealthController", "methodName": "summary", "httpMethod": "GET", "path": "/chapter-health/summary", "permissions": ["Permission.LibraryEditMetadata"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/chapter-health/chapter-health.controller.ts", "className": "ChapterHealthController", "methodName": "list", "httpMethod": "GET", "path": "/chapter-health/books", "permissions": ["Permission.LibraryEditMetadata"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/chapter-health/chapter-health.controller.ts", "className": "ChapterHealthController", "methodName": "enqueue", "httpMethod": "POST", "path": "/chapter-health/lookups", "permissions": ["Permission.LibraryEditMetadata"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/chapter-health/chapter-health.controller.ts", "className": "ChapterHealthController", "methodName": "state", "httpMethod": "GET", "path": "/chapter-health/lookups/state", "permissions": ["Permission.LibraryEditMetadata"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/chapter-health/chapter-health.controller.ts", "className": "ChapterHealthController", "methodName": "cancel", "httpMethod": "DELETE", "path": "/chapter-health/lookups/queued", "permissions": ["Permission.LibraryEditMetadata"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/chapter-health/chapter-health.controller.ts", "className": "ChapterHealthController", "methodName": "clearFinished", "httpMethod": "DELETE", "path": "/chapter-health/lookups/finished", "permissions": ["Permission.LibraryEditMetadata"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/chapter-health/chapter-health.controller.ts", "className": "ChapterHealthController", "methodName": "dismissReview", "httpMethod": "DELETE", "path": "/chapter-health/lookups/:bookId", "permissions": ["Permission.LibraryEditMetadata"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "getSummary", "httpMethod": "GET", "path": "/book-dock/summary", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "getStatistics", "httpMethod": "GET", "path": "/book-dock/statistics", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "getSettings", "httpMethod": "GET", "path": "/book-dock/settings", "permissions": ["Permission.ManageBookDock"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "updateSettings", "httpMethod": "PUT", "path": "/book-dock/settings", "permissions": ["Permission.ManageBookDock"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "getFile", "httpMethod": "GET", "path": "/book-dock/files/:id", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "getCover", "httpMethod": "GET", "path": "/book-dock/files/:id/cover", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "upload", "httpMethod": "POST", "path": "/book-dock/upload", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "updateFile", "httpMethod": "PATCH", "path": "/book-dock/files/:id", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "discardFile", "httpMethod": "DELETE", "path": "/book-dock/files/:id", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "bulkDiscard", "httpMethod": "POST", "path": "/book-dock/files/discard", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "applyFetched", "httpMethod": "POST", "path": "/book-dock/files/apply-fetched", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "retryFetch", "httpMethod": "POST", "path": "/book-dock/files/retry-fetch", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "setTarget", "httpMethod": "POST", "path": "/book-dock/files/set-target", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "selectionSummary", "httpMethod": "POST", "path": "/book-dock/files/selection-summary", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "bulkEdit", "httpMethod": "POST", "path": "/book-dock/files/bulk-edit", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "previewNames", "httpMethod": "POST", "path": "/book-dock/files/preview-names", "permissions": ["Permission.BookDockAccess"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "finalize", "httpMethod": "POST", "path": "/book-dock/finalize", "permissions": ["Permission.BookDockAccess", "Permission.LibraryUpload"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/book-dock/book-dock.controller.ts", "className": "BookDockController", "methodName": "rescan", "httpMethod": "POST", "path": "/book-dock/rescan", "permissions": ["Permission.ManageBookDock"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getFormatDistribution", "httpMethod": "GET", "path": "/statistics/format-distribution", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getLanguageDistribution", "httpMethod": "GET", "path": "/statistics/language-distribution", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getBooksAddedOverTime", "httpMethod": "GET", "path": "/statistics/books-added-over-time", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getStorageByFormat", "httpMethod": "GET", "path": "/statistics/storage-by-format", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getMetadataScoreDistribution", "httpMethod": "GET", "path": "/statistics/metadata-score-distribution", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getLibraryMetadataCompleteness", "httpMethod": "GET", "path": "/statistics/library-metadata-completeness", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getFormatShareOverTime", "httpMethod": "GET", "path": "/statistics/format-share-over-time", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getPageCountDistribution", "httpMethod": "GET", "path": "/statistics/page-count-distribution", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getPublicationDecade", "httpMethod": "GET", "path": "/statistics/publication-decade", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getPublicationYearTimeline", "httpMethod": "GET", "path": "/statistics/publication-year-timeline", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getTopAuthors", "httpMethod": "GET", "path": "/statistics/top-authors", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getMetadataCompleteness", "httpMethod": "GET", "path": "/statistics/metadata-completeness", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getGenreDistribution", "httpMethod": "GET", "path": "/statistics/genre-distribution", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getSummary", "httpMethod": "GET", "path": "/statistics/summary", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getGenreCooccurrence", "httpMethod": "GET", "path": "/statistics/genre-cooccurrence", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getMetadataFreshnessGauge", "httpMethod": "GET", "path": "/statistics/metadata-freshness-gauge", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getLibraryIntegrityGauge", "httpMethod": "GET", "path": "/statistics/library-integrity-gauge", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getAcquisitionLagScatter", "httpMethod": "GET", "path": "/statistics/acquisition-lag-scatter", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getLargestBooks", "httpMethod": "GET", "path": "/statistics/largest-books", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/statistics/statistics.controller.ts", "className": "StatisticsController", "methodName": "getTopSeries", "httpMethod": "GET", "path": "/statistics/top-series", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/upload/upload.controller.ts", "className": "UploadController", "methodName": "uploadBook", "httpMethod": "POST", "path": "/libraries/:id/upload", "permissions": ["Permission.LibraryUpload"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "findAll", "httpMethod": "GET", "path": "/users", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "summary", "httpMethod": "GET", "path": "/users/summary", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "findNeedingAttention", "httpMethod": "GET", "path": "/users/attention", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "findAssignable", "httpMethod": "GET", "path": "/users/assignable", "permissions": ["Permission.ManageLibraries"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "updateMe", "httpMethod": "PATCH", "path": "/users/me", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "uploadMyAvatar", "httpMethod": "POST", "path": "/users/me/avatar", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "deleteMyAvatar", "httpMethod": "DELETE", "path": "/users/me/avatar", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "findById", "httpMethod": "GET", "path": "/users/:id", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "getAvatar", "httpMethod": "GET", "path": "/users/:id/avatar", "permissions": [], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "createUser", "httpMethod": "POST", "path": "/users", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "updateUser", "httpMethod": "PATCH", "path": "/users/:id", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "deleteUser", "httpMethod": "DELETE", "path": "/users/:id", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "setPermissions", "httpMethod": "PUT", "path": "/users/:id/permissions", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "setSuperuser", "httpMethod": "PUT", "path": "/users/:id/superuser", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "getLibraries", "httpMethod": "GET", "path": "/users/:id/libraries", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] }, { "file": "server/src/modules/user/user.controller.ts", "className": "UserController", "methodName": "getLibraryGrants", "httpMethod": "GET", "path": "/users/:id/library-access", "permissions": ["Permission.ManageUsers"], "libraryAccess": [], "isPublic": false, "allowDefault": false, "useGuards": [] } ]