ЕСОЗ - публічна документація
(GraphQL) Create Rule engine rule_UA
Ціль
Даний веб-сервіс (WS) дозволяє створити налаштування бізнес-правила з адміністративної панелі. Налаштування бізнес-правила буде використовуватися, як додаткова валідація при створенні відповідного медичного запису.
Основні положення
Це метод graphQl, який використовується тільки в адміністративній панелі.
Тільки автентифіковані та авторизовані співробітники НСЗУ з відповідним скоупом може створювати налаштування бізнес-правил.
Налаштування бізнес-правил повинні бути підписані цифровим підписом (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")
Сервісна логіка
Зберегти підписаний контент до сховища даних
Зберегти дані до колекції rule_engine_rules (Mongo DB) у відповідності до Business rules engine data model_EN
ЕСОЗ - публічна документація