Змінити статус співробітника POST /api/external/company/employee/status
Метод змінює статус співробітника компанії. Якщо дія вимагає каскадної зміни статусів ключів співробітника, API формує PDF-документи зміни статусу ключів, підписує їх ключем адміністратора/суперадміністратора, зберігає підтвердження і змінює статуси ключів.
Клієнт не підписує PDF самостійно. Клієнт передає UUID ключа адміністратора/суперадміністратора та зашифрований пароль до нього.
REQUEST
|
URL |
|
|
Метод запиту |
POST |
|
URL запиту |
/api/external/company/employee/status |
|
URL параметри |
companyCode (обов’язково) - код Компанії; employeeIpn (обов’язково) - ІПН/РНОКПП співробітника. |
|
Authorization |
|
|
Auth type |
API key |
|
Key / Value |
x-system-id - токен, отриманий при підключенні |
|
Headers |
|
|
Content-Type |
application/json |
|
REQUEST |
|
|
JSON Body |
JSON приклад запиту:
|
Опис полів запиту:
| Поле | Тип | Обовʼязкове | Опис |
|---|---|---|---|
action |
enum | так | Новий статус/дія для співробітника: ACTIVE, BLOCKED, FIRED, REHIRED. |
adminKeyUuid |
string UUID | так | UUID ключа адміністратора/суперадміністратора цієї компанії. |
adminKeyPassword |
string | так | Base64 від RSA-encrypted bytes пароля ключа адміністратора/суперадміністратора. Шифрувати public key з /api/external/key. |
reason |
string | так | Причина зміни статусу. Мінімум 4 символи після trim. Потрапляє у PDF-документи зміни статусу ключів і в історію статусів співробітника. |
Дозволені переходи статусів:
| Поточний статус співробітника | Дозволені action |
|---|---|
ACTIVE |
BLOCKED, FIRED |
REHIRED |
BLOCKED, FIRED |
BLOCKED |
ACTIVE, FIRED |
FIRED |
REHIRED |
Якщо передати недозволений перехід, API поверне wrong_action.
RESPONSE
В тілі відповіді передаються статус 200.
JSON приклад відповіді:
{
"employee": {
"id": 456,
"login": "380501112233",
"email": "employee@example.com",
"fullName": "Іваненко Іван Іванович",
"ipn": "3148615913",
"role": "USER",
"employeeStatus": "BLOCKED",
"employeeEmail": "employee@example.com"
},
"pdf": [
"BASE64_SIGNED_STATUS_CHANGE_PDF"
]
}
Опис полів відповіді:
| Поле | Тип | Опис |
|---|---|---|
employee |
object | Оновлений JSON-обʼєкт ESSUser. Поля описані в розділі 2.2. |
pdf |
string[] | Масив підписаних PDF-документів зміни статусу ключів у base64. |
Для REHIRED PDF-документи за ключами не формуються, тому pdf буде порожнім масивом.
Якщо у співробітника немає ключів, для яких потрібно виконати каскадну зміну статусу, pdf також буде порожнім масивом.
В історії статусів ключів дія фіксується як виконана адміністратором компанії.
CURL
curl -X POST 'https://host/api/external/company/employee/status?...' \
-H 'x-system-id: 019eb581-307b-7562-8a1f-20227511e898' \
-H 'Content-Type: application/json' \
-d '{
"action": "BLOCKED",
"adminKeyUuid": "019ec000-0000-7000-8000-000000000099",
"adminKeyPassword": "BASE64_RSA_ENCRYPTED_ADMIN_KEY_PASSWORD",
"reason": "Тимчасове блокування співробітника"
}'
Помилки
| HTTP | type |
Додаткові поля | Опис |
|---|---|---|---|
| 400 | employee_not_found |
— | Співробітник не знайдений. |
| 400 | wrong_action |
— | Перехід статусу не дозволений. |
| 400 | unsupported_action |
— | action не передано або не підтримується. |
| 400 | invalid_reason |
— | reason порожній або коротший за 4 символи після trim. |
| 400 | decrypt_error |
field=adminKeyPassword |
Не вдалося розшифрувати пароль ключа адміністратора/суперадміністратора. |
| 400 | admin_pkey_not_found |
— | Ключ адміністратора/суперадміністратора не знайдено або не належить company. |
| 400 | admin_required |
— | Власник adminKeyUuid не має ролі ADMIN/SUPER_ADMIN. |
| 400 | invalid_password |
— | Пароль ключа адміністратора/суперадміністратора неправильний. |
| 400 | pkey_wrong_status |
— | Каскадна зміна статусу одного з ключів неможлива для поточного стану ключа. |
| 403 | company_access_denied |
— | Немає доступу до company. |
| 403 | company_wrong_status |
status |
Компанія не ACTIVE. |