ЕСОЗ - публічна документація
Deactivate Item in the Forbidden group_UA
Ціль
Даний веб-сервіс дозволяє деактивувати елементи заборонених груп.
Ключові моменти
Даний сервіс на graphQl, який використовується лише з панелі адміністрування.
Тільки авторизований та уповноважений працівник національної служби охорони здоров’я з відповідною областю може здійснювати пошук у заборонених групах.
Елементи слід деактивувати з накладанням цифрового підпису.
Один або кілька елементів можна деактивувати одночасно.
Тільки активні елементи можуть бути деактивовані.
Специфікація
"""
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 ('One of the required property should be present: forbidden_group_service_ids, forbidden_group_code_ids')
2. Для кожного id
в масиві forbidden_group_service_ids
або forbidden_group_code_ids
:
Перевірити, що він унікальний в запиті
у випадку помилки - повернути 422 ('Item Id <id> is duplicated in the request')
Перевірити чи він існує та чи активний:
у випадку помилки - повернути 404 ('not found')
3. Перевірити, що вказано deactivation_reason
у випадку помилки - повернути 422 ('required property deactivation_reason was not present')
Сервісна логіка
Зберегти підписаний контент до медіа-сховища
Для кожного
id
в масивіforbidden_group_service_ids
абоforbidden_group_code_ids
:встановити is_active = false у відповідній таблиці (дивитися https://e-health-ua.atlassian.net/wiki/spaces/FORBIDDEN/pages/2087190529)
встановити deactivation_reason = $.deactivation_reason
встановити updated_at, updated_by
Очистити кеш
ЕСОЗ - публічна документація