ЕСОЗ - публічна документація

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Current »

Ціль

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

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

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

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

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

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

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

"""
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

  • No labels