Skip to main content

Змінити статус співробітника 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": "BLOCKED",
  "adminKeyUuid": "019ec000-0000-7000-8000-000000000099",
  "adminKeyPassword": "BASE64_RSA_ENCRYPTED_ADMIN_KEY_PASSWORD",
  "reason": "Тимчасове блокування співробітника"
}

 

Опис полів запиту:

Поле Тип Обовʼязкове Опис
action enum так Новий статус/дія для співробітника: ACTIVEBLOCKEDFIREDREHIRED.
adminKeyUuid string UUID так UUID ключа адміністратора/суперадміністратора цієї компанії.
adminKeyPassword string так Base64 від RSA-encrypted bytes пароля ключа адміністратора/суперадміністратора. Шифрувати public key з /api/external/key; див. розділ 1.4..
reason string так Причина зміни статусу. Мінімум 4 символи після trim. Потрапляє у PDF-документи зміни статусу ключів і в історію статусів співробітника.

Дозволені переходи статусів: 

Поточний статус співробітника Дозволені action
ACTIVE BLOCKEDFIRED
REHIRED BLOCKEDFIRED
BLOCKED ACTIVEFIRED
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.