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

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 »

Ціль 

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

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

  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) у відповідності до /wiki/spaces/FORBIDDEN/pages/2087190529

  • No labels