Мета
Цей WS призначений для завершення процесу завантаження документів особи через інформаційну систему особи (PIS).
Ключові положення
Даний метод використовується тільки PIS.
Цей метод перевіряє список документів, які потрібно завантажити, щодо особи та URL-адреси. Якщо всі документи особи були завантажені, статус перевірки особи нсзу оновлюється.
Особа отримується від користувача, який виконує метод.
Специфікація
Перевірки
Авторизація
Перевірити валідність токену доступу
в разі помилки - повернути 401 (“Invalid access token”)
Перевірити, що токен дійсний
в разі помилки - повернути 401 (“Invalid access token”)
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'person_documents:write')
в разі невалідних скоупів - повернути 403 (“Your scope does not allow to access this resource. Missing allowances: person_documents:write”)
Перевірити персону
Отримати
person_id
по користувачуПеревірити, що персона існує в базі даних mpi та активна (status = ‘active’ та is_active=true)
в разі помилки - повернути 404 ('Person does not exist or is not active')
Сервісна логіка
Отримати список документів особи, які потрібно завантажити в сховище даних (для кожного типу документів, якщо спрацювало кілька правил, очікується лише один файл):
Викликати Check confidant person relationship, відправити
person_id
= person.id таconfidant_person_id
=applicant_person_id
(з токену) в разі, якщо метод повертає“ok”:Перевірити на документи з назвою
confidant_person.{confidant_person.id}.documents_relationship.[:].{type}
Перевірити на документи з назвою
confidant_person.{confidant_person.relationship_type}.{person.confidant_person.[:].documents_person.[:].type}
якщо один з документів персони має тип = ‘BIRTH_CERTIFICATE_FOREIGN’ та відсутні ті ж документи в {person.confidant_person.[:].documents_relationship.[:]} та вік персони < значення глобального параметру no_self_auth_age, то
Перевірити на документи з назвою
person.BIRTH_CERTIFICATE_FOREIGN
якщо один з документів персони має тип = ‘PERMANENT_RESIDENCE_PERMIT’ та вік персони >= no_self_auth_age значення глобального параметру, то
Перевірити на документ з назвою
person.PERMANENT_RESIDENCE_PERMIT
якщо автентифікаційний метод персони = ‘OFFLINE’ або ‘THIRD_PERSON’ автентифікаційний метод = ‘OFFLINE’
Перевірити на документ з назвою
person.{documents.[:].type} or third_person.{third_person.documents.[:].type}
якщо поле person.unzr не пусте та перші 8 цифр unzr != birth_date персони
Перевірити на документ з назвою
person.unzr
якщо вік персони більше глобального паарметру no_self_registration_age, але менше глобального параметру person_full_legal_capacity_age
та один з документів персони має тип з конфігураційного парметру PIS_PERSON_LEGAL_CAPACITY_DOCUMENT_TYPES, тоОтримати тип документу, що було знайдено
ТА перевірити на документи з назвоюperson.{type}
Перевірте наявність кожного документа в існуючому сховищі даних для особи:
persons
person_requests
authentication_methods_requests
Згенеруйте підписані URL-адреси для кожного документа, який потрібно завантажити, але не існує в сховищі даних по особі.
Якщо всі очікувані документи особи існують у сховищі даних по особі та nhs_verification_status = ‘NOT_VERIFIED’ персони та nhs_verification_reason = ‘DOCUMENTS_TRIGGERED’, оновити верифікаційний статус нсзу по персоні у відповідності до логіки, описаної тут https://e-health-ua.atlassian.net/wiki/spaces/DRACS/pages/17249206422/IL.Sign+person+request+modified+EN#Manual-NHS-verification
Відобразити відповідь у відповідності до специфікації.