library.schema

Scope: library

Кто может вызывать: Любой авторизованный пользователь с доступом к REST.

Каталог методов, параметров и кодов ошибок для AI/интеграций.

HTTP: GET

Побочные эффекты: none

Параметры метода

Параметр Тип Обяз. Описание
(нет)

Возвращаемые данные

Объект в result.result:

Поле Тип Описание
scope string library
prefix string library.
fetchAllMax int Лимит для fetchAll (5000)
methods array { method, http, params[], errors[], controller, action }

Обработка ошибок

Справочник кодов: error-codes.md.

Код Описание
UNAUTHORIZED Пользователь не авторизован
INTERNAL_ERROR Внутренняя ошибка

Пример запроса (GET)

curl -s "https://76590.dev.wehive.digital/rest/1/{webhook_code}/library.schema.json"
        

Пример ответа

{
          "result": {
            "result": {
              "scope": "library",
              "prefix": "library.",
              "fetchAllMax": 5000,
              "methods": [
                {
                  "method": "library.book.add",
                  "http": "POST",
                  "params": [
                    {
                      "name": "name",
                      "type": "string",
                      "required": true,
                      "description": "Book title"
                    },
                    {
                      "name": "code",
                      "type": "string",
                      "required": false,
                      "description": "Symbolic code (auto-generated from name on add if omitted)"
                    },
                    {
                      "name": "sort",
                      "type": "int",
                      "required": false,
                      "description": "Sort index"
                    },
                    {
                      "name": "annotation",
                      "type": "string",
                      "required": false,
                      "description": "Description"
                    },
                    {
                      "name": "categoryIds",
                      "type": "array",
                      "required": false,
                      "description": "Category section IDs"
                    },
                    {
                      "name": "authorIds",
                      "type": "array",
                      "required": false,
                      "description": "Author enum IDs"
                    },
                    {
                      "name": "newAuthors",
                      "type": "array",
                      "required": false,
                      "description": "New author names to create"
                    },
                    {
                      "name": "paperVersion",
                      "type": "bool",
                      "required": false,
                      "description": "Available in paper version"
                    },
                    {
                      "name": "availableCopies",
                      "type": "int",
                      "required": false,
                      "description": "Paper copies count (alias for paperVersionCount)"
                    },
                    {
                      "name": "showInCategoryRecommendations",
                      "type": "bool",
                      "required": false,
                      "description": "Show in category recommendations (RECOMMENDATIONS_TOP)"
                    },
                    {
                      "name": "electronicVersion",
                      "type": "bool",
                      "required": false,
                      "description": "Available in electronic version"
                    },
                    {
                      "name": "electronicLinks",
                      "type": "object",
                      "required": false,
                      "description": "Electronic links: pdf, epub, doc, zip"
                    },
                    {
                      "name": "electronicFileIds",
                      "type": "array",
                      "required": false,
                      "description": "Electronic file IDs (EBOOK_FILES)"
                    },
                    {
                      "name": "audioVersion",
                      "type": "bool",
                      "required": false,
                      "description": "Audiobook available"
                    },
                    {
                      "name": "audioLinks",
                      "type": "object",
                      "required": false,
                      "description": "Audio links: mp3, mp4, m4b, mobi, ogg"
                    },
                    {
                      "name": "audioFileIds",
                      "type": "array",
                      "required": false,
                      "description": "Audio file IDs (AUDIO_BOOK)"
                    },
                    {
                      "name": "publishYear",
                      "type": "string",
                      "required": false,
                      "description": "Publish year"
                    },
                    {
                      "name": "link",
                      "type": "string",
                      "required": false,
                      "description": "External link"
                    },
                    {
                      "name": "price",
                      "type": "string",
                      "required": false,
                      "description": "Price"
                    },
                    {
                      "name": "previewPictureId",
                      "type": "int",
                      "required": false,
                      "description": "Preview picture file ID"
                    },
                    {
                      "name": "isActive",
                      "type": "bool",
                      "required": false,
                      "description": "Active flag (moderator only)"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "VALIDATION_ERROR",
                      "description": "Invalid payload"
                    }
                  ],
                  "controller": "Book",
                  "action": "addAction"
                },
                {
                  "method": "library.book.availability",
                  "http": "GET",
                  "params": [
                    {
                      "name": "bookId",
                      "type": "int",
                      "required": true,
                      "description": "Book ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "NOT_FOUND",
                      "description": "Book not found"
                    }
                  ],
                  "controller": "Book",
                  "action": "availabilityAction"
                },
                {
                  "method": "library.book.delete",
                  "http": "POST",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "PERMISSION_DENIED",
                      "description": "Moderator required"
                    },
                    {
                      "code": "NOT_FOUND",
                      "description": "Book not found"
                    }
                  ],
                  "controller": "Book",
                  "action": "deleteAction"
                },
                {
                  "method": "library.book.get",
                  "http": "GET",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "NOT_FOUND",
                      "description": "Book not found"
                    }
                  ],
                  "controller": "Book",
                  "action": "getAction"
                },
                {
                  "method": "library.book.list",
                  "http": "GET",
                  "params": [
                    {
                      "name": "limit",
                      "type": "int",
                      "required": false,
                      "description": "Page size, default 50, max 500"
                    },
                    {
                      "name": "offset",
                      "type": "int",
                      "required": false,
                      "description": "Offset, default 0"
                    },
                    {
                      "name": "fetchAll",
                      "type": "bool",
                      "required": false,
                      "description": "If true, return all rows (limited by rest_fetch_all_max)"
                    },
                    {
                      "name": "filter",
                      "type": "object",
                      "required": false,
                      "description": "Mongo-style filter"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "INVALID_FILTER_OPERATOR",
                      "description": "Unknown filter operator"
                    },
                    {
                      "code": "FETCH_ALL_LIMIT_EXCEEDED",
                      "description": "fetchAll exceeded protective limit"
                    }
                  ],
                  "controller": "Book",
                  "action": "listAction"
                },
                {
                  "method": "library.book.propose",
                  "http": "POST",
                  "params": [
                    {
                      "name": "name",
                      "type": "string",
                      "required": true,
                      "description": "Proposed book title"
                    },
                    {
                      "name": "description",
                      "type": "string",
                      "required": false,
                      "description": "Description"
                    },
                    {
                      "name": "categoryId",
                      "type": "int",
                      "required": false,
                      "description": "Category ID"
                    },
                    {
                      "name": "cost",
                      "type": "string",
                      "required": false,
                      "description": "Price"
                    },
                    {
                      "name": "link",
                      "type": "string",
                      "required": false,
                      "description": "External link"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Book",
                  "action": "proposeAction"
                },
                {
                  "method": "library.book.publish",
                  "http": "POST",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "PERMISSION_DENIED",
                      "description": "Moderator required"
                    },
                    {
                      "code": "NOT_FOUND",
                      "description": "Book not found"
                    }
                  ],
                  "controller": "Book",
                  "action": "publishAction"
                },
                {
                  "method": "library.book.return",
                  "http": "POST",
                  "params": [
                    {
                      "name": "bookId",
                      "type": "int",
                      "required": true,
                      "description": "Book ID"
                    },
                    {
                      "name": "userId",
                      "type": "int",
                      "required": false,
                      "description": "Borrower user ID (defaults to caller; moderator required for another user)"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Book",
                  "action": "returnAction"
                },
                {
                  "method": "library.book.take",
                  "http": "POST",
                  "params": [
                    {
                      "name": "bookId",
                      "type": "int",
                      "required": true,
                      "description": "Book ID"
                    },
                    {
                      "name": "dateTo",
                      "type": "string",
                      "required": false,
                      "description": "Return-by date (alias: returnTo)"
                    },
                    {
                      "name": "userId",
                      "type": "int",
                      "required": false,
                      "description": "Borrower user ID (defaults to caller; moderator required for another user)"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "BOOK_ALREADY_TAKEN",
                      "description": "User already has an active loan for this book"
                    },
                    {
                      "code": "BOOK_NOT_AVAILABLE",
                      "description": "No available copies of the book"
                    }
                  ],
                  "controller": "Book",
                  "action": "takeAction"
                },
                {
                  "method": "library.book.unpublish",
                  "http": "POST",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "PERMISSION_DENIED",
                      "description": "Moderator required"
                    },
                    {
                      "code": "NOT_FOUND",
                      "description": "Book not found"
                    }
                  ],
                  "controller": "Book",
                  "action": "unpublishAction"
                },
                {
                  "method": "library.book.update",
                  "http": "POST",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    },
                    {
                      "name": "name",
                      "type": "string",
                      "required": true,
                      "description": "Book title"
                    },
                    {
                      "name": "code",
                      "type": "string",
                      "required": false,
                      "description": "Symbolic code (auto-generated from name on add if omitted)"
                    },
                    {
                      "name": "sort",
                      "type": "int",
                      "required": false,
                      "description": "Sort index"
                    },
                    {
                      "name": "annotation",
                      "type": "string",
                      "required": false,
                      "description": "Description"
                    },
                    {
                      "name": "categoryIds",
                      "type": "array",
                      "required": false,
                      "description": "Category section IDs"
                    },
                    {
                      "name": "authorIds",
                      "type": "array",
                      "required": false,
                      "description": "Author enum IDs"
                    },
                    {
                      "name": "newAuthors",
                      "type": "array",
                      "required": false,
                      "description": "New author names to create"
                    },
                    {
                      "name": "paperVersion",
                      "type": "bool",
                      "required": false,
                      "description": "Available in paper version"
                    },
                    {
                      "name": "availableCopies",
                      "type": "int",
                      "required": false,
                      "description": "Paper copies count (alias for paperVersionCount)"
                    },
                    {
                      "name": "showInCategoryRecommendations",
                      "type": "bool",
                      "required": false,
                      "description": "Show in category recommendations (RECOMMENDATIONS_TOP)"
                    },
                    {
                      "name": "electronicVersion",
                      "type": "bool",
                      "required": false,
                      "description": "Available in electronic version"
                    },
                    {
                      "name": "electronicLinks",
                      "type": "object",
                      "required": false,
                      "description": "Electronic links: pdf, epub, doc, zip"
                    },
                    {
                      "name": "electronicFileIds",
                      "type": "array",
                      "required": false,
                      "description": "Electronic file IDs (EBOOK_FILES)"
                    },
                    {
                      "name": "audioVersion",
                      "type": "bool",
                      "required": false,
                      "description": "Audiobook available"
                    },
                    {
                      "name": "audioLinks",
                      "type": "object",
                      "required": false,
                      "description": "Audio links: mp3, mp4, m4b, mobi, ogg"
                    },
                    {
                      "name": "audioFileIds",
                      "type": "array",
                      "required": false,
                      "description": "Audio file IDs (AUDIO_BOOK)"
                    },
                    {
                      "name": "publishYear",
                      "type": "string",
                      "required": false,
                      "description": "Publish year"
                    },
                    {
                      "name": "link",
                      "type": "string",
                      "required": false,
                      "description": "External link"
                    },
                    {
                      "name": "price",
                      "type": "string",
                      "required": false,
                      "description": "Price"
                    },
                    {
                      "name": "previewPictureId",
                      "type": "int",
                      "required": false,
                      "description": "Preview picture file ID"
                    },
                    {
                      "name": "isActive",
                      "type": "bool",
                      "required": false,
                      "description": "Active flag (moderator only)"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "PERMISSION_DENIED",
                      "description": "Moderator required"
                    },
                    {
                      "code": "NOT_FOUND",
                      "description": "Book not found"
                    },
                    {
                      "code": "VALIDATION_ERROR",
                      "description": "Empty name or save failed"
                    }
                  ],
                  "controller": "Book",
                  "action": "updateAction"
                },
                {
                  "method": "library.category.add",
                  "http": "POST",
                  "params": [
                    {
                      "name": "name",
                      "type": "string",
                      "required": true,
                      "description": "Category name"
                    },
                    {
                      "name": "sort",
                      "type": "int",
                      "required": false,
                      "description": "Sort index"
                    },
                    {
                      "name": "color",
                      "type": "string",
                      "required": false,
                      "description": "CSS color"
                    },
                    {
                      "name": "active",
                      "type": "bool",
                      "required": false,
                      "description": "Active flag"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "PERMISSION_DENIED",
                      "description": "Moderator required"
                    }
                  ],
                  "controller": "Category",
                  "action": "addAction"
                },
                {
                  "method": "library.category.delete",
                  "http": "POST",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "PERMISSION_DENIED",
                      "description": "Moderator required"
                    }
                  ],
                  "controller": "Category",
                  "action": "deleteAction"
                },
                {
                  "method": "library.category.get",
                  "http": "GET",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "CATEGORY_NOT_FOUND",
                      "description": "Category not found"
                    }
                  ],
                  "controller": "Category",
                  "action": "getAction"
                },
                {
                  "method": "library.category.list",
                  "http": "GET",
                  "params": [
                    {
                      "name": "limit",
                      "type": "int",
                      "required": false,
                      "description": "Page size, default 50, max 500"
                    },
                    {
                      "name": "offset",
                      "type": "int",
                      "required": false,
                      "description": "Offset, default 0"
                    },
                    {
                      "name": "fetchAll",
                      "type": "bool",
                      "required": false,
                      "description": "If true, return all rows (limited by rest_fetch_all_max)"
                    },
                    {
                      "name": "filter",
                      "type": "object",
                      "required": false,
                      "description": "Mongo-style filter"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "INVALID_FILTER_OPERATOR",
                      "description": "Unknown filter operator"
                    },
                    {
                      "code": "FETCH_ALL_LIMIT_EXCEEDED",
                      "description": "fetchAll exceeded protective limit"
                    }
                  ],
                  "controller": "Category",
                  "action": "listAction"
                },
                {
                  "method": "library.category.update",
                  "http": "POST",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    },
                    {
                      "name": "name",
                      "type": "string",
                      "required": false,
                      "description": "Category name"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "PERMISSION_DENIED",
                      "description": "Moderator required"
                    }
                  ],
                  "controller": "Category",
                  "action": "updateAction"
                },
                {
                  "method": "library.enum.author.list",
                  "http": "GET",
                  "params": [
                    {
                      "name": "limit",
                      "type": "int",
                      "required": false,
                      "description": "Page size, default 50, max 500"
                    },
                    {
                      "name": "offset",
                      "type": "int",
                      "required": false,
                      "description": "Offset, default 0"
                    },
                    {
                      "name": "fetchAll",
                      "type": "bool",
                      "required": false,
                      "description": "If true, return all rows (limited by rest_fetch_all_max)"
                    },
                    {
                      "name": "filter",
                      "type": "object",
                      "required": false,
                      "description": "Mongo-style filter"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "INVALID_FILTER_OPERATOR",
                      "description": "Unknown filter operator"
                    },
                    {
                      "code": "FETCH_ALL_LIMIT_EXCEEDED",
                      "description": "fetchAll exceeded protective limit"
                    }
                  ],
                  "controller": "Enum\\Author",
                  "action": "listAction"
                },
                {
                  "method": "library.enum.bookType.list",
                  "http": "GET",
                  "params": [],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Enum\\BookType",
                  "action": "listAction"
                },
                {
                  "method": "library.enum.competency.list",
                  "http": "GET",
                  "params": [
                    {
                      "name": "limit",
                      "type": "int",
                      "required": false,
                      "description": "Page size, default 50, max 500"
                    },
                    {
                      "name": "offset",
                      "type": "int",
                      "required": false,
                      "description": "Offset, default 0"
                    },
                    {
                      "name": "fetchAll",
                      "type": "bool",
                      "required": false,
                      "description": "If true, return all rows (limited by rest_fetch_all_max)"
                    },
                    {
                      "name": "filter",
                      "type": "object",
                      "required": false,
                      "description": "Mongo-style filter"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "INVALID_FILTER_OPERATOR",
                      "description": "Unknown filter operator"
                    },
                    {
                      "code": "FETCH_ALL_LIMIT_EXCEEDED",
                      "description": "fetchAll exceeded protective limit"
                    }
                  ],
                  "controller": "Enum\\Competency",
                  "action": "listAction"
                },
                {
                  "method": "library.history.get",
                  "http": "GET",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "HISTORY_NOT_FOUND",
                      "description": "History record not found"
                    }
                  ],
                  "controller": "History",
                  "action": "getAction"
                },
                {
                  "method": "library.history.list",
                  "http": "GET",
                  "params": [
                    {
                      "name": "limit",
                      "type": "int",
                      "required": false,
                      "description": "Page size, default 50, max 500"
                    },
                    {
                      "name": "offset",
                      "type": "int",
                      "required": false,
                      "description": "Offset, default 0"
                    },
                    {
                      "name": "fetchAll",
                      "type": "bool",
                      "required": false,
                      "description": "If true, return all rows (limited by rest_fetch_all_max)"
                    },
                    {
                      "name": "filter",
                      "type": "object",
                      "required": false,
                      "description": "Mongo-style filter"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "INVALID_FILTER_OPERATOR",
                      "description": "Unknown filter operator"
                    },
                    {
                      "code": "FETCH_ALL_LIMIT_EXCEEDED",
                      "description": "fetchAll exceeded protective limit"
                    }
                  ],
                  "controller": "History",
                  "action": "listAction"
                },
                {
                  "method": "library.integration.alpina.set",
                  "http": "POST",
                  "params": [
                    {
                      "name": "active",
                      "type": "bool",
                      "required": false,
                      "description": "Integration active flag"
                    },
                    {
                      "name": "timeStart",
                      "type": "string",
                      "required": false,
                      "description": "Daily agent start time (HH:MM)"
                    },
                    {
                      "name": "apiKey",
                      "type": "string",
                      "required": false,
                      "description": "Alpina API Key"
                    },
                    {
                      "name": "apiSecret",
                      "type": "string",
                      "required": false,
                      "description": "Alpina API Secret"
                    },
                    {
                      "name": "apiAddress",
                      "type": "string",
                      "required": false,
                      "description": "Alpina API address"
                    },
                    {
                      "name": "storeAddress",
                      "type": "string",
                      "required": false,
                      "description": "Alpina storage address"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "PERMISSION_DENIED",
                      "description": "Admin required"
                    }
                  ],
                  "controller": "Integration\\Alpina",
                  "action": "setAction"
                },
                {
                  "method": "library.integration.mif.set",
                  "http": "POST",
                  "params": [
                    {
                      "name": "active",
                      "type": "bool",
                      "required": false,
                      "description": "Integration active flag"
                    },
                    {
                      "name": "timeStart",
                      "type": "string",
                      "required": false,
                      "description": "Daily agent start time (HH:MM)"
                    },
                    {
                      "name": "libId",
                      "type": "string",
                      "required": false,
                      "description": "MIF library ID"
                    },
                    {
                      "name": "adminEmail",
                      "type": "string",
                      "required": false,
                      "description": "Library administrator email"
                    },
                    {
                      "name": "url",
                      "type": "string",
                      "required": false,
                      "description": "MIF API URL"
                    },
                    {
                      "name": "secretApiKey",
                      "type": "string",
                      "required": false,
                      "description": "MIF API secret key"
                    },
                    {
                      "name": "companyName",
                      "type": "string",
                      "required": false,
                      "description": "Company Name (Audience in MIF cabinet)"
                    },
                    {
                      "name": "useDateExpired",
                      "type": "bool",
                      "required": false,
                      "description": "Respect book activity period"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "PERMISSION_DENIED",
                      "description": "Admin required"
                    }
                  ],
                  "controller": "Integration\\Mif",
                  "action": "setAction"
                },
                {
                  "method": "library.ipr.addAction",
                  "http": "POST",
                  "params": [
                    {
                      "name": "bookId",
                      "type": "int",
                      "required": true,
                      "description": "Book ID"
                    },
                    {
                      "name": "programId",
                      "type": "int",
                      "required": false,
                      "description": "IPR program (card) ID; required when user has multiple cards"
                    },
                    {
                      "name": "userId",
                      "type": "int",
                      "required": false,
                      "description": "Target user ID (defaults to caller; moderator required for another user)"
                    },
                    {
                      "name": "dateTo",
                      "type": "string",
                      "required": false,
                      "description": "Planned completion date"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "IPR_NOT_AVAILABLE",
                      "description": "IPR module unavailable"
                    }
                  ],
                  "controller": "Ipr",
                  "action": "addActionAction"
                },
                {
                  "method": "library.rating.batch",
                  "http": "GET",
                  "params": [
                    {
                      "name": "bookIds",
                      "type": "array",
                      "required": true,
                      "description": "Book IDs"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Rating",
                  "action": "batchAction"
                },
                {
                  "method": "library.rating.get",
                  "http": "GET",
                  "params": [
                    {
                      "name": "bookId",
                      "type": "int",
                      "required": true,
                      "description": "Book ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Rating",
                  "action": "getAction"
                },
                {
                  "method": "library.review.add",
                  "http": "POST",
                  "params": [
                    {
                      "name": "bookId",
                      "type": "int",
                      "required": true,
                      "description": "Book ID"
                    },
                    {
                      "name": "rating",
                      "type": "float",
                      "required": true,
                      "description": "Rating value"
                    },
                    {
                      "name": "text",
                      "type": "string",
                      "required": false,
                      "description": "Review text"
                    },
                    {
                      "name": "userId",
                      "type": "int",
                      "required": false,
                      "description": "Review author user ID (defaults to caller; moderator required for another user)"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Review",
                  "action": "addAction"
                },
                {
                  "method": "library.review.get",
                  "http": "GET",
                  "params": [
                    {
                      "name": "id",
                      "type": "int",
                      "required": true,
                      "description": "Entity ID"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "REVIEW_NOT_FOUND",
                      "description": "Review not found"
                    }
                  ],
                  "controller": "Review",
                  "action": "getAction"
                },
                {
                  "method": "library.review.list",
                  "http": "GET",
                  "params": [
                    {
                      "name": "limit",
                      "type": "int",
                      "required": false,
                      "description": "Page size, default 50, max 500"
                    },
                    {
                      "name": "offset",
                      "type": "int",
                      "required": false,
                      "description": "Offset, default 0"
                    },
                    {
                      "name": "fetchAll",
                      "type": "bool",
                      "required": false,
                      "description": "If true, return all rows (limited by rest_fetch_all_max)"
                    },
                    {
                      "name": "filter",
                      "type": "object",
                      "required": false,
                      "description": "Mongo-style filter"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    },
                    {
                      "code": "INVALID_FILTER_OPERATOR",
                      "description": "Unknown filter operator"
                    },
                    {
                      "code": "FETCH_ALL_LIMIT_EXCEEDED",
                      "description": "fetchAll exceeded protective limit"
                    }
                  ],
                  "controller": "Review",
                  "action": "listAction"
                },
                {
                  "method": "library.schema",
                  "http": "GET",
                  "params": [],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Library",
                  "action": "schemaAction"
                },
                {
                  "method": "library.subscription.delete",
                  "http": "POST",
                  "params": [
                    {
                      "name": "userId",
                      "type": "int",
                      "required": false,
                      "description": "Subscription owner user ID (defaults to caller; moderator required for another user)"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Subscription",
                  "action": "deleteAction"
                },
                {
                  "method": "library.subscription.get",
                  "http": "GET",
                  "params": [
                    {
                      "name": "userId",
                      "type": "int",
                      "required": false,
                      "description": "Subscription owner user ID (defaults to caller; moderator required for another user)"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Subscription",
                  "action": "getAction"
                },
                {
                  "method": "library.subscription.set",
                  "http": "POST",
                  "params": [
                    {
                      "name": "userId",
                      "type": "int",
                      "required": false,
                      "description": "Subscription owner user ID (defaults to caller; moderator required for another user)"
                    },
                    {
                      "name": "book_category",
                      "type": "array",
                      "required": false,
                      "description": "Category IDs"
                    },
                    {
                      "name": "competency",
                      "type": "array",
                      "required": false,
                      "description": "Competency IDs"
                    },
                    {
                      "name": "paper_version",
                      "type": "string",
                      "required": false,
                      "description": "Y/N"
                    },
                    {
                      "name": "ebook_version",
                      "type": "string",
                      "required": false,
                      "description": "Y/N"
                    },
                    {
                      "name": "audio_version",
                      "type": "string",
                      "required": false,
                      "description": "Y/N"
                    }
                  ],
                  "errors": [
                    {
                      "code": "UNAUTHORIZED",
                      "description": "User is not authorized"
                    },
                    {
                      "code": "ACCESS_DENIED",
                      "description": "Library access denied"
                    },
                    {
                      "code": "INVALID_LIMIT",
                      "description": "limit is out of range"
                    },
                    {
                      "code": "INVALID_OFFSET",
                      "description": "offset is out of range"
                    },
                    {
                      "code": "INVALID_FILTER",
                      "description": "Invalid filter payload"
                    },
                    {
                      "code": "INTERNAL_ERROR",
                      "description": "Internal server error"
                    }
                  ],
                  "controller": "Subscription",
                  "action": "setAction"
                }
              ]
            },
            "error": null
          }
        }
        

См. также

Предыдущая
Следующая