Purpose
This process is designed to deactivate declaration manually (for NHS admin or patient authorized via Cabinet)
Apiary
Authorize user
- Verify the validity of access token
- Check user scopes declaration:terminate in order to perform this action
- In case error - generate 401 response
Validate request
One of parameter person_id or employee_id
must be set. Also can be added the description field: reason_description.
Patient via cabinet can terminate only his own active declaration.
Validate person
- For NHS admin
- Search person by $.id
- in case error return 404
- Search declaration by $.person_id
- in case error return 404
- Check declaration status = active
- in case error return 422. Message:"declaration status is not active"
- Search person by $.id
- For authorized patient:
- extract person_id from
Validate employee
- Search employee by $.id
- in case error return 404
- Check if employee is an active doctor (employee_type=DOCTOR and is_active=true)
- in case error return 422. Message: "Employee is not an active doctor"
- Select all active declarations by $.employee_id
- in case error return 422. Message: "Employee does not have active declarations"
Terminate declaration
- Change declaration status to `terminated`
- If in payload
employee_id
was set then change reason to `manual_employee` - If in payload
person_id