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

Create Forbidden group_UA

Ціль 

Ця веб-сервіс дозволяє створити заборонену групу в панелі адміністратора. Група буде використовуватися як додаткове обмеження щодо отримання/пошуку конкретних медичних подій.

Ключові моменти 

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

  2. Тільки авторизований та уповноважений працівник національної служби охорони здоров’я з відповідним скоупом може створювати забороненугрупу.

  3. Заборонена група повинна підписуватися цифровим підписом.

  4. Група створює без будь-яких елементів, таких як послуги, коди словників або груп обслуговування.

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

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

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

  1. Збережіть підписаний контент у медіа-сховищі

  2. Зберегти дані до таблиці по forbidden_groups (PRM DB) у відповідності до Forbidden group data model

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