...
якщо рівний - перевірити, що персона має бути не авторизована як довірена особа, що вона не відповідає наступним правилам:
вік персони < no_self_registration_age глобальному параметру;
що вік персони між значенням no_self_registration_age та person_full_legal_capacity_age глобальних параметрів та персона не має документу з типом з конфігураційного параметру PIS_PERSON_LEGAL_CAPACITY_DOCUMENT_TYPES;
вік персони > person_full_legal_capacity_age глобального параметру та існує хоча б один взаємозв'язок активний та погоджений з довіреною особою з персоною (викорисовуючи наступний процес /wiki/spaces/PCAB/pages/17415995422 Check confidant person relationship з person_id = person з запиту - очікується відповідь
:ok, :approved
)в разі помилки - повернути 409 (‘Request must be authorized by confidant person’)
Якщо не рівний -
помилка - повернути 409 (‘Only THIRD_PERSON authentication method is allowed’)
...
Створити запит на метод автентифікації в il.authentication_method_request з
status = NEW
action = INSERT
authentication_method = $authentication_method
authentication_method_current =
authentication_method_id = $authentication_method_id
channel = PIS
Якщо потрібен OTP верифікації
Викликати Initialize OTP для генерації одноразового паролю та направити його на номер клієнта.
Знайти запити, де person_id = person.id та authentication_method_requests.status = NEW, то
Змінити статус всіх знайдених authentication_method_requests на CANCELED.
Якщо OTP верифікації не потрібен
Знайти запити, де person_id = person.id та authentication_method_requests.status = NEW, то
Змінити статус по всім знайденим authentication_method_requests на CANCELED.
Оновити mpi.person_authentication_methods
метод автентифікації персони, що був до цього, стає inactive - встановити
ended_at
= now() (отримати поточні дату та час) та is_active = falseвстановити для нового auth_method в person_auth_methods. Встановити поля -
type
,phone_numer
,alias
(якщо є в запиті)
Оновити запит методу автентифікації
Змінити статус сутності в il.authentication_method_request на COMPLETED
Встановити updated_at - now() (Отримати поточі дату та час)
Відобразити відповідь у відповідності до специфікації.