Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

Ціль

Даний веб-сервіс (WS) дозволяє деактивувати налаштування бізнес-правил через Адміністративну панель.

Основні положення

  1. Це метод graphQl, який використовується тільки через Адміністративну панель.

  2. Тільки автентифіковані та авторизовані співробітники НСЗУ з відповідними скоупами можуль деактивувати налаштування бізнес-правил.

  3. Налаштування бізнес-правил має деактивовуватися тільки з цифровим підписом (DS).

  4. Тільки активні налаштування бізнес-правил можуть бути деактивовані.

Специфікація

Code Block
languagegraphql
"""
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 не вказано')

Сервісна логіка

  1. Зберегти підписаний контент до сховища даних

  2. Оновити дані:

    1. rule_engine_rules колекція

      1. встановити is_active = false

      2. встановити deactivation_reason = $.deactivation_reason

      3. встановити updated_at, updated_by