Specification
Authorize user
Verify the validity of access token
Return 401 in case validation fails
Check scopes in order to perform this action (scope = 'append_auth_method:write')
Return 403 in case invalid scope(s)
Logic
action = deactivate
If IL_DB.authentication_method_request.status =
NEW
:
If person < 14, check that count(auth_method, where person.auth_methods.person_id = $.person_id) >=1 left
validate auth_method_request.auth_method_current:
If auth_method_request.auth_method_current = OTP - Verificate sms (Invoke verification module to verify OTP (OTP Verification))
If auth_method_request.auth_method_current = OFFLINE - verificate download documents
Update authentication method request
Change entity status in IL_DB.authentication_method_request to COMPLETED
Set updated_at - now() (Get current date-time)
Set updated_by - user_id (Extract user from token)
Update mpi.person_authentication_method:
set ended_at = now() (Get current date-time)
If deactivated auth_method where field
default
= True, then the method that was last added set a flagdefault
= True
action = insert
If IL_DB.authentication_method_request.status =
NEW
:
if type = OTP or OFFLINE, person’s auth method that was before (off or offline) becomes inactive
if type =
THIRD_PERSON
, set default=false and Calculate term of person_authentication_methodStart date: start_date = Current_date()
End date:
if (person.age < 18) { end_date = min(birth_date + 18y - 1d, start_date + third_person_term);} else { end_date = start_date + third_person_term;}
Verificate sms - from third_person. Invoke verification module to verify OTP (OTP Verification) or verificate documents, if third_person.auth_method.type = OFFLINE
Invoke Initialize OTP to generate one time password and send it to person number( Phone_number: mpi.person_auth_method.phone_number, where person_id = $.person_id and default=True). At this stage, the patients receive an SMS message.
If IL_DB.authentication_method_request.status =
APPROVED
:
action = update
If IL_DB.authentication_method_request.status =
NEW
:
Verificate sms - from third_person. Invoke verification module to verify OTP (OTP Verification) or verificate documents, if third_person.auth_method.type = OFFLINE
Invoke Initialize OTP to generate one time password and send it to person number( Phone_number: mpi.person_auth_method.phone_number, where person_id = $.person_id and default=True). At this stage, the patients receive an SMS message.
Update authentication method request
Change entity status in IL_DB.authentication_method_request to APPROVED
Set updated_at - now() (Get current date-time)
Set updated_by - user_id (Extract user from token)
If IL_DB.authentication_method_request.status =
APPROVED
:
Verificate sms - from person. Invoke verification module to verify OTP (OTP Verification)
Update mpi
Add to table
person_auth_methods
row with type =third_person