Table of Contents |
---|
Ціль
Даний веб-сервіс (WS) дозволяє деактивувати налаштування бізнес-правил через Адміністративну панель.
Основні положення
Це метод graphQl, який використовується тільки через Адміністративну панель.
Тільки автентифіковані та авторизовані співробітники НСЗУ з відповідними скоупами можуль деактивувати налаштування бізнес-правил.
Налаштування бізнес-правил має деактивовуватися тільки з цифровим підписом (DS).
Тільки активні налаштування бізнес-правил можуть бути деактивовані.
Специфікація
Code Block | ||
---|---|---|
| ||
""" Input for `deactivateRuleEngineRule` mutation. User must have a scope **rule_engine_rule:write** """ input DeactivateRuleEngineRuleInput { "Signed data to deactivate rule engine set" signedContent: SignedContent! } """ Return type for `deactivateRuleEngineRule` mutation. """ type DeactivateRuleEngineRulePayload { "Deactivated `RuleEngineRule`." ruleEngineRule: RuleEngineRule } |
Авторизація
Перевірити валідність токену доступу
в разі помилки - повернути 401 (“Invalid access token”) як неуспішність валідації
Перевірити, що токен дійсний
в разі помилки - повернути 401 (“Invalid access token”)
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'rule_engine_rule:write')
повернути 403 (“Your scope does not allow to access this resource. Missing allowances: rule_engine_rule:write”) в разі невалідних скоупів
Перевірити юридичну особу
Отримати client_id з токену.
Перевірити скоупи клієнта на можливість виконання даної дії (scope = 'rule_engine_rule:write')
в разі помилки - повернути 403 (“Your scope does not allow to access this resource. Missing allowances: rule_engine_rule: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”)
Перевірити, що DS валідний та дійсний
Перевірити, що DS належить користувачу
Перевірити, що EDRPOU з DS та legal_entities.edrpou для client_id співпадають
в разі помилки - повернути 409 (“Signer edrpou doesn’t match with requester edrpou”)
Перевірити, що DRFO з DS та party.tax_id співпадають
в разі помилки - повернути 422 (“Does not match the signer drfo“)
Перевірити запит
Перевірити, що
rule_id
вказаноякщо не вказано - повернути 422 ('потрібна властивість rule_id не вказано')
якщо не існує або неактивний - повернути 404 ('not found')
Перевірити, що
deactivation_reason
вказанов разі помилки - повернути 422 ('потрібна властивість deactivation_reason не вказано')
Сервісна логіка
Зберегти підписаний контент до сховища даних
Оновити дані:
rule_engine_rules колекція
встановити is_active = false
встановити deactivation_reason = $.deactivation_reason
встановити updated_at, updated_by