Ціль
Ця веб-сервіс дозволяє створити заборонену групу в панелі адміністратора. Група буде використовуватися як додаткове обмеження щодо отримання/пошуку конкретних медичних подій.
Ключові моменти
Цей метод на graphQl використовується лише в панелі адміністрування.
Тільки авторизований та уповноважений працівник національної служби охорони здоров’я з відповідним скоупом може створювати забороненугрупу.
Заборонена група повинна підписуватися цифровим підписом.
Група створює без будь-яких елементів, таких як послуги, коди словників або груп обслуговування.
Специфікація
""" Input for `createForbiddenGroup` mutation. User must have a scope **forbidden_group:write** """ input CreateForbiddenGroupInput { "The name of the `ForbiddenGroup`." name: String! "Reason for creating the `ForbiddenGroup`." creationReason: String! } """ Return type for `createForbiddenGroup` mutation. """ type CreateForbiddenGroupPayload { "Created `ForbiddenGroup`." forbiddenGroup: ForbiddenGroup } |
Авторизація
Перевірити дійсність токену доступу
у випадку помилки - повернути 401 (“Invalid access token”) у випадку помилки перевірки
Перевірити, чи термін дії токену не сплив
у випадку помилки - повернути 401 (“Invalid access token”)
Перевірте скоупи користувачів на можливість використання даної операції (скоуп = 'forbidden_group:details')
повернути 403 (“Your scope does not allow to access this resource. Missing allowances: forbidden_group:write”) in case of invalid scope(s)
Перевірити юридичну організацію
Отримати client_id з токену.
Перевірити скоупи кліжнта на можливість виконання даної операції (скоуп = 'forbidden_group:details')
у випадку помилки - повернути 403 (“Your scope does not allow to access this resource. Missing allowances: forbidden_group: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”)
Перевірити, що цифровий підпис дійсний
Перевірити, що цифровий підпис належить користувачу
Перевірити, що ЕДРПОУ з цифрового підпису та party.tax_id співпадають
у випадку помилки - повернути 409 (“Signer DRFO doesn't match with requester tax_id“)
Перевірити запит
Перевірити
name
таcreation_reason
вказаніу випадку помилки - повернути 422 ('required property <name/creation_reason> was not present')
Сервісна логіка
Збережіть підписаний контент у медіа-сховищі
Зберегти дані до таблиці по forbidden_groups (PRM DB) у відповідності до /wiki/spaces/FORBIDDEN/pages/2087190529