Table of Contents |
---|
Ціль
Даний веб-сервіс дозволяє деактивувати заборонену групу з панелі адміністратора. Група буде деактивована з усіма включеними елементами.
Ключові моменти
Цей метод на graphQl використовується лише з панелі адміністрування.
Тільки авторизований та уповноважений працівник національної служби охорони здоров’я з відповідною областю може деактивувати заборонену групу.
Заборонену групу слід деактивувати з накладанням цифрового підпису.
Деактивувати можна лише активні групи.
Якщо деактивувати групу, деактивуються також усі включені елементи.
Специфікація
|
Авторизація
Перевірити валідність токену доступу
у випадку помилки - повернути 401 (“Invalid access token”) in case of validation fails
Перевірити, що токен дійсний
у випадку помилки - повернути 401 (“Invalid access token”)
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'forbidden_group:write')
в разі невалідних скоупів повернути помилку 403 (“Your scope does not allow to access this resource. Missing allowances: forbidden_group:write”)
Перевірити юридичну організацію
Отримати client_id з токену.
Перевірити скоупи користувача, на можливість виконання даної дії (scope = 'forbidden_group:write')
у випадку помилки - повернути 403 (“Your scope does not allow to access this resource. Missing allowances: forbidden_group:write”)
Перевірити статус юридичної організації (status = ACTIVE)
у випадку помилки - повернути 409 ('client_id refers to legal entity that is not active')
Перевірити цифровий підпис
Перевірити, що запит підписано
у випадку помилки - повернути 422 (“document must be signed by 1 signer but contains 0 signatures”)
Перевірити, що цифровий підпис валідний та дійсний
Перевірити, що цифровий підпис належить користувачу
Перевірити, що ЕДРПОУ з цифрового підпису та party.tax_id співпадають
у випадку помилки - повернути 409 (“Signer DRFO doesn't match with requester tax_id“)
Перевірити запит
Перевірити, що
forbidden_group_id
вказаноу випадку, якщо не подано - поверніть 422 ('required property forbidden_group_id was not present')
у випадку, якщо не існує або не активний - повернути 404 ('not found')
Перевірити, що
deactivation_reason
вказаноу випадку, якщо не подано - поверніть 422 ('required property deactivation_reason was not present')
Сервісна логіка
Зберегти підписаний контент до медіа-сховища
Оновити дані:
таблиця forbidden_groups
встановити is_active = false
встановити deactivation_reason = $.deactivation_reason
встановити updated_at, updated_by
Деактивувати кожен активний елемент у групі. Установити елемент deactivation_reason = group deactivation_reason.