Table of Contents |
---|
Ціль
Даний веб-сервіс дозволяє деактивувати елементи заборонених груп.
Ключові моменти
Даний сервіс на graphQl, який використовується лише з панелі адміністрування.
Тільки авторизований та уповноважений працівник національної служби охорони здоров’я з відповідною областю може здійснювати пошук у заборонених групах.
Елементи слід деактивувати з накладанням цифрового підпису.
Один або кілька елементів можна деактивувати одночасно.
Тільки активні елементи можуть бути деактивовані.
Специфікація
Code Block | ||
---|---|---|
| ||
""" Input for `deactivateForbiddenGroupItems` mutation. User must have a scope **forbidden_group:write** """ input DeactivateForbiddenGroupItemsInput { "Forbidden group identifier." forbiddenGroupId: ID! "List with IDs of `ForbiddenGroupService` objects. Each object should be active and belong to the `forbiddenGroupId`" forbiddenGroupServiceIds: [ID!] "List with IDs of `ForbiddenGroupCode` objects. Each object should be active and belong to the `forbiddenGroupId`" forbiddenGroupCodeIds: [ID!] } """ Return type for `DeactivateForbiddenGroupItems` mutation. """ type DeactivateForbiddenGroupItemsPayload { "Updaed `ForbiddenGroup`." forbiddenGroup: ForbiddenGroup } |
Авторизація
Перевірити валідність токену доступу
у випадку помилки - повернути 401 (“Invalid access token”) in case of validation fails
Перевірити, чи термін дії токену не минув
у випадку помилки - повернути 401 (“Invalid access token”)
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'forbidden_group:write')
повернути 403 (“Your scope does not allow to access this resource. Missing allowances: forbidden_group:write”) в разі невалідних скоупів
Перевірити юридичну організацію
Отримати client_id з токену.
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'forbidden_group:write')
у випадку помилки - повернути 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“)
Перевірити запит
Перевірити6 що вказано хоча б одне поле з масива:
forbidden_group_service_ids
,forbidden_group_code_ids
...
у випадку помилки - повернути 422 ('required property deactivation_reason was not present')
Сервісна логіка
Зберегти підписаний контент до медіа-сховища
Для кожного
id
в масивіforbidden_group_service_ids
абоforbidden_group_code_ids
:встановити is_active = false у відповідній таблиці (дивитися /wiki/spaces/FORBIDDEN/pages/2087190529)
встановити deactivation_reason = $.deactivation_reason
встановити updated_at, updated_by
Очистити кеш