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

UA_Initialize Person documents upload

Мета

Цей WS призначений для ініціалізації процесу завантаження документів особи через інформаційну систему особи (PIS).

Ключові положення

  1. Даний метод використовується тільки PIS.

  2. Цей метод повертає список документів, які потрібно завантажити для особи та URL-адрес. Якщо документи не потрібно завантажувати, повертається порожній список.

  3. Персона отримується від користувача, який виконує метод.

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

Apiary

Перевірки

Авторизація

  • Перевірити валідність токену доступу

    • в разі помилки - повернути 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')

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

  1. Отримати список документів особи, які необхідно завантажити в сховище медіаконтенту (для кожного типу документів, якщо спрацювало кілька правил, очікується лише один файл):

    1. Перевірити, що метод Check confidant person relationship повертає true:

      відправити person_id = person.id та confidant_person_id = applicant_person_id (з токену) в разі якщо метод повертає “ok”:

      1. Перевірити на документи з назвою confidant_person.{confidant_person.id}.documents_relationship.[:].{type}

      2. Перевірити на документи з назвою confidant_person.{confidant_person.relationship_type}.{person.confidant_person.[:].documents_person.[:].type}

    2. Якщо документ однієї з осіб має тип = ‘BIRTH_CERTIFICATE_FOREIGN’ і відсутні однакові документи в {person.confidant_person.[:].documents_relationship.[:]}

      та вік персони < no_self_auth_age значення глобального параметру, то

      1. Перевірити на документи з ім'ям person.BIRTH_CERTIFICATE_FOREIGN

    3. Якщо документ однієї з осіб має тип = ‘PERMANENT_RESIDENCE_PERMIT’ та persons age >= no_self_auth_age значення глобального параметру, то

      1. Перевірити на документи з назвою person.PERMANENT_RESIDENCE_PERMIT

    4. якщо автентифікаційний метод персони = ‘OFFLINE’ або ‘THIRD_PERSON’ автентифікаційний метод = ‘OFFLINE’

      1. Перевірити на документи з назвоню person.{documents.[:].type} or third_person.{third_person.documents.[:].type}

    5. Якщо поле person.unzr не пусте та перші 8 цифр unzr != birth_date персони

      1. Перевірити документи з назвою person.unzr

    6. якщо вік персони більше за глобальний параметр no_self_registration_age, але менше глобального параметру person_full_legal_capacity_age
      та один з документів персони має тип з конфігураційного параметру PIS_PERSON_LEGAL_CAPACITY_DOCUMENT_TYPES, то

      1. Отримати тип документа, що було знайдено
        ТА перевірити на документи з назвою person.{type}

  2. Перевірте наявність кожного документа в існуючих медіа сховищі для особи:

    1. persons

    2. person_requests

    3. authentication_methods_requests

  3. Згенеруйте підписані URL-адреси для кожного документа, який потрібно завантажити, але не існує в медіа-сховищі особи.

  4. Відобразити відповідь у відповідності до специфікації.

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