Table of Contents |
---|
...
- Extract legal_entity_id (client_id) from token
Validate FK
1. Validate legal_entity_id - legal_entity_id exists
In case error - return 422 error:
Code Block | ||
---|---|---|
| ||
{:error, [{%{ description: "Legal entity not found", params: [], rule: :invalid }, "$.legal_entity_id"}]} |
2. Validate id - dispense.id exists
In case error - return 404 error
Validate context
- Only users of legal entity who has created Medication Dispense and NHS Admin can reject Medication Dispense
- medication_dispense.legal_entity_id = client_id (context) or client_id (context) (type) in TOKENS_TYPE_ADMIN
In case error - return 403 error (type: forbidden)
Validate status (transition)
- Dispense should be active in order to process it
- is_active = true
- status = 'NEW'
In case error - return 409 error (type: 'invalid_transition', message: 'Can't update medication dispense status from {status} to REJECTED')
Change dispense status
Update dispense status to REJECTED
...