library.book.take

Scope: library

Кто может вызывать: Сотрудник; чужой userId — модератор.

HTTP: POST

Побочные эффекты: Запись в HL LibraryBookHistory.

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

Параметр Тип Обяз. Описание
bookId int да ID книги. Алиасы: id
dateTo string да Плановая дата возврата (строка для strtotime, напр. 2026-12-31 или 31.12.2026 как в UI). Алиасы: returnTo
userId int нет Заёмщик (по умолчанию — вызывающий)

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

Поле Тип Описание
historyId int ID созданной записи выдачи в HL LibraryBookHistory (то же значение, что поле id в library.history.get)
availableCopies int Сколько экземпляров книги осталось свободно после выдачи (в ТЗ — availableCount)
bookId int ID книги
userId int ID заёмщика
success bool Успешная выдача

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

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

Код Описание
BOOK_NOT_FOUND Книга не найдена или не из каталога библиотеки (details.id)
BOOK_ALREADY_TAKEN Пользователь уже взял этот экземпляр (details без code)
BOOK_NOT_AVAILABLE Нет свободных экземпляров (details без code)
VALIDATION_ERROR Отсутствует dateTo / returnTo (details.field: dateTo); прочие ошибки истории выдачи (details.code)
PERMISSION_DENIED Чужой userId без прав модератора

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

curl -X POST "https://76590.dev.wehive.digital/rest/1/{webhook_code}/library.book.take.json"
          -H "Content-Type: application/json"
          -H "Accept: application/json"
          --data '{
          "bookId": 1177,
          "dateTo": "2026-12-31",
          "userId": 1
        }'
        

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

{
          "result": {
            "result": {
              "historyId": 187,
              "availableCopies": 2,
              "bookId": 1177,
              "userId": 1,
              "success": true
            },
            "error": null
          }
        }
        

См. также

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