Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

...

  • NHS employee with scopes 'contract_requests:writeupdate' can change contract request
  • Contract request only in status 'NEW' could be changed. 
  • NHS employee can change only several field of the contract request and not all of them

Specification

  • apiary
  • json_schema

Request

Validation

Validate token

  • Verify the validity of access token
    • Return 401 in case validation fails
  • token is not expired
    • in case error return 401 - "Token is expired"

Validate

...

user

...

Validate user

extract user_id from token

extract client_id from token

  • Check if user is active
    • in case error return 403 - (user is not active)
  • check nhs_legal_entity is active
    • in case error return 403 - (Client is not active)

Validate

...

scopes

  • Check user scopes in order to perform this action (scope = 'contract_requests:update')
    • Return 403 in case invalid scope(s) 

Validate status

  • Check if status=NEW
    • in case error return 422 - "Incorrect status of contract_request to modify it"

Validate changed fields

  • Only next field could be changed by nhs employee
    • issue_city
    - місце укладання
    • = nhs_le City, where address_type=REGISTRATION
    • nhs_base - що діє на підставі
    • price - Загальна орієнтовна Ціна Договору
    • status (enum)

Response

...

Generate Printout form 

If status

...

is changed to APPROVED - generate printout form

Invoke MAN to render print form.

Request mapping:

Parameter
Source
idCONTRACT_REQUEST


Code Block
titleCurl example
curl --request POST \
     --header 'Accept: text/html' \
     --header 'Content-Type: application/json' \
     {:host}/templates/{:contract_printout_id}/actions/render

Set IL.contract_request.printout_content:


MANResponse.$.data

Add to evemt manager

if status was changed (status = APPROVED, DECLINED or SIGNED) - add new status to event_manager

fieldvalue
event_typeStatusChangeEvent
entity_typeContract_request
entity_id$.id
properties.status.new_value$.status
event_time$.update_at
changed_by$.changed_by