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

(GraphQL) Create Rule engine rule_UA

Ціль

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

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

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

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

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

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

""" Input for `createRuleEngineRule` mutation. User must have a scope **rule_engine_rule:write** """ input CreateRuleEngineRuleInput { "Signed data to create rule engine set" signedContent: SignedContent! } """ Return type for `createRuleEngineRule` mutation. """ type CreateRuleEngineRulePayload { "Created `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 посилається на юридичну особу, яка не активна')

Перевірити цифровий підпис

  • Перевірити, що запит підписано

    • в разі помилки - повернути 422 (“document must be signed by 1 signer but contains 0 signatures”)

  • Перевірити, що цифровий підпис (DS) валідний та дійсний

  • Перевірити, що цифровий підпис (DS) належить користувачу

    • Перевірити, що EDRPOU з DS та legal_entities.edrpou для client_id відповідають

      • в разі помилки - повернути 422 (“Signer edrpou doesn’t match with requester edrpou”)

    • Перевірити, що DRFO з DS та party.tax_id співпадають

      • в разі помилки - повернути 409 (“Signer DRFO doesn't match with requester tax_id“)

Перевірити запит

  • Перевірити name, code та value блоки вказано

    • в разі помилки - повернути 422 ('очікувана властивість <property> не була вказана')

  • Перевірити, що налаштування бізнес-правил з code унікальна (отримати активну rule_engine_rule з тим самим code.system та code.value)

    • в разі помилки - повернути 409 ("Rule engine rule with such code and system already exists")

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

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

  2. Зберегти дані до колекції rule_engine_rules (Mongo DB) у відповідності до Business rules engine data model_EN

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