rhr.php¶
Модуль управления заявками на удаленные работы (Remote Hands Requests): создание, фильтрация, обновление статусов и коммуникация по заявкам.
Методы API¶
| Метод | Действие | Описание |
|---|---|---|
add | создание заявки | Создает новую заявку на удаленную работу (RHR) с указанием типа и оборудования. |
chat | добавление сообщения в чат | Добавляет видимое клиенту сообщение в историю заявки. |
discard | отмена заявки | Рекурсивно меняет статус заявки на отмененную или закрытую. |
list | получение списка заявок | Возвращает список доступных задач RHR с фильтрацией по локации, статусу и дате. |
rhr/add¶
Создает новую заявку на удаленную работу (RHR) с указанием типа и оборудования.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: add |
| token | ✅ | string | Токен авторизации |
| params[type] | ✅ | string | Тип заявки (KVM, UNBLOCK, SERVICE) |
| params[eq_id] | ✅ | int | ID оборудования, для которого создается заявка |
| params[request_origin] | ❌ | string | Источник запроса (CLIENT или INTERNAL). Для клиентов игнорируется и принудительно ставится CLIENT. |
| params[order_data] | ❌ | object | Данные заказа в формате JSON строки |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"module": "rhr",
"action": "add",
"requests": [
{
"id": 12345,
"eq_id": 67890,
"type": "KVM",
"status": "PENDING",
"request_origin": "CLIENT",
"priority": "NORMAL",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z",
"eq_location": "AMS",
"eq_name": "server-01",
"request": "Перезагрузить сервер",
"assignee": null,
"ticket": null
}
]
}
Примеры ошибок
rhr/chat¶
Добавляет видимое клиенту сообщение в историю заявки.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: chat |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID заявки |
| message | ✅ | string | Текст сообщения |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"module": "rhr",
"action": "chat",
"history": [
{
"id": 98765,
"component_id": 12345,
"type": "CLIENT",
"message": "Сервер перезагружен, спасибо",
"created_at": "2024-01-15T11:00:00Z",
"tags": []
}
],
"requests": [
{
"id": 12345,
"eq_id": 67890,
"type": "KVM",
"status": "ACTIVE",
"request_origin": "CLIENT",
"priority": "NORMAL",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T11:00:00Z",
"eq_location": "AMS",
"eq_name": "server-01",
"request": "Перезагрузить сервер",
"assignee": "admin",
"ticket": null
}
]
}
rhr/discard¶
Рекурсивно меняет статус заявки на отмененную или закрытую.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: discard |
| token | ✅ | string | Токен авторизации |
| id | ✅ | int | ID заявки |
| params[response] | ❌ | string | Комментарий к отмене |
Пример запроса
Пример успешного ответа
{
"result": "OK",
"module": "rhr",
"action": "discard",
"history": [
{
"id": 98766,
"component_id": 12345,
"type": "CLIENT",
"message": "Заявка отменена пользователем",
"created_at": "2024-01-15T12:00:00Z",
"tags": []
}
],
"requests": [
{
"id": 12345,
"eq_id": 67890,
"type": "KVM",
"status": "CANCELED",
"request_origin": "CLIENT",
"priority": "NORMAL",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T12:00:00Z",
"eq_location": "AMS",
"eq_name": "server-01",
"request": "Перезагрузить сервер",
"assignee": "admin",
"ticket": null
}
]
}
rhr/list¶
Возвращает список доступных задач RHR с фильтрацией по локации, статусу и дате.
HTTP-метод: POST
Параметры:
| Параметр | Обязательный | Тип | Описание |
|---|---|---|---|
| action | ✅ | string | Идентификатор метода: list |
| token | ✅ | string | Токен авторизации |
| params[location] | ❌ | string | Фильтр по локации (например, AMS, NY) |
| params[status] | ❌ | array<string> | Фильтр по статусам (PENDING, ACTIVE, SOLVED и т.д.) |
| params[date_from] | ❌ | string | Начальная дата фильтрации (YYYY-MM-DD) |
| params[date_to] | ❌ | string | Конечная дата фильтрации (YYYY-MM-DD) |
| params[date] | ❌ | array<string> | Массив дат для фильтрации |
| params[deleted] | ❌ | boolean | Показывать ли удаленные заявки |
| params[eq_id] | ❌ | array<int> | Фильтр по ID оборудования |
| params[type] | ❌ | string | Фильтр по типу заявки (KVM, SERVICE и т.д.) |
| params[request_origin] | ❌ | string | Фильтр по источнику заявки (CLIENT, INTERNAL) |
| params[request_owner] | ❌ | string | Фильтр по владельцу заявки (email) |
| params[id] | ❌ | array<int> | Фильтр по ID заявок |
Пример запроса
curl -s "https://invapi.hostkey.ru/rhr.php" -X POST \
--data "action=list" \
--data "token=HOSTKEY_TOKEN" \
--data "params[location]=AMS" \
--data "params[status][]=PENDING" \
--data "params[status][]=ACTIVE" \
--data "params[date_from]=2024-01-01" \
--data "params[date_to]=2024-01-31" \
--data "params[eq_id][]=67890" \
--data "params[eq_id][]=67891"
Пример успешного ответа
{
"result": "OK",
"module": "rhr",
"action": "list",
"history": [],
"requests": [
{
"id": 12345,
"eq_id": 67890,
"type": "KVM",
"status": "PENDING",
"request_origin": "CLIENT",
"priority": "NORMAL",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-01-15T10:30:00Z",
"eq_location": "AMS",
"eq_name": "server-01",
"request": "Перезагрузить сервер",
"assignee": null,
"ticket": null,
"date_created": "2024-01-15T10:30:00Z",
"date_assigned": null,
"date_started": null,
"date_resolved": null,
"date_closed": null,
"date_failed": null,
"resolved_by": null
}
]
}