Table of Contents |
---|
Purpose
This WS is designed to allow employee with appropriate scopes to deactivate device definition in eHealth.
Key points
This is a GraphQL query method used in Administration panel only.
Only authenticated and authorized employee with appropriate scope can deactivate device definitions.
Specification
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Authorize
Verify the validity of access token
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_definition:write')
Return (403, 'Your scope does not allow to access this resource. Missing allowances: device_definition:write') in case of invalid scope(s)
Validate legal entity
Extract client_id from token.
Check legal entity status (status = ACTIVE)
in case of error - return 409 ('client_id refers to legal entity that is not active')
Check client type (type = NHS)
in case of error - return 403 ('You don't have permission to access this resource')
Validate request
Check that required fields according to specification are submitted
in case of error - return 422 ('required property <field_name> was not present') where field_name - name of missing field
Check that no additional fields that do not correspond to schema are submitted
in case of error - return 422 ('Unknown field')
Check that device definition by
$.id
exists in device_definitions table in PRM DBin case of error - return 404 ('Device definition is not found')
Check that device definition is active (is_active = true)
in case of error - return 409 ('Device definition should be active')
Check that no active program devices exist in program_devices table in PRM DB with device_definition_id =
$.id
in case of error - return 422 ('Device definition has active Program devices')
Service logic
Update record in device_definitions table in PRM DB, set values:
is_active = false
updated_at = now()
updated_by = user_id from token
Render a response according to specification.