ЕСОЗ - публічна документація
RC_Revoke Device request
Purpose
This WS is designed to revoke previously created Device request.
Specification
Authorization
Verify the validity of access token
in case of error - return 401 (“Invalid access token”) in case of validation fails
Verify that token is not expired
in case of error - return 401 (“Invalid access token”)
Check user scopes in order to perform this action (scope = 'device_request:revoke')
return 403 (“Your scope does not allow to access this resource. Missing allowances: device_request:revoke”) in case of invalid scope(s)
Validations
Validate request
Return 422 with the list of validation errors in case validation fails
Validate legal entity
Check legal entity type: it has to be in me_allowed_transactions_le_types config parameter, has status = active and nhs_verified = true
in case of error return 409 "Action is not allowed for the legal entity"
Validate digital signature
Validate request is signed
in case of error - return 400 (“document must be signed by 1 signer but contains 0 signatures”)
Check DS is valid and not expired
Validate that DS belongs to the user
Check that DRFO from DS and party.tax_id matches
in case of error - return 422 (“Does not match the signer drfo“)
Ensure that $.requester.identifier.value matches with user employees
in case of error - return 409 ('Employees related to this party_id not in current MSP')
Validate transition
Only active device request can be revoked
Get current device request status
Check that status in ('active')
in case of error - return 409 error ('Device request in status %status% cannot be revoked')
For more information look at RC_Device request status modelarchived .
Validate revoked reason
Validate $.status_reason.code is a value from eHealth/device_request_revoke_reasons dictionary
in case of error - return 422 ("value is not allowed in enum")
Validate content
Signed content must match with device request in DB in order to be revoked
Render device request from DB
Exclude $.status_reason from signed content
Compare rendered device request and signed content
In case both object doesn't match - return 422 ('Signed content doesn't match with previously created device request')
Service logic
Save signed content to media storage
Update device request status to revoked (update also updated_at, updated_by)
Get person's authentication_method of MPI
If authentication_method == OTP:
Generate text SMS with template
TEMPLATE_SMS_FOR_REVOKE_DEVICE_REQUEST
.
Send SMS
Save internal information to corresponding DB.
Send
StatusChangeEvent
to Event Manager
ЕСОЗ - публічна документація