Versions Compared

Key

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

Table of Contents

...

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"

...

  • 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)
  • Check user role = ??"NHS ADMIN SIGNER"
    • in case error return 403 "User is not allowed to perform this action"

Validate scopes

  • Check user scopes in order to perform this action (scope = 'contract_requests:update')
    • Return 403 in case invalid scope(s) "Your scope does not allow to access this resource. Missing allowances: contract_requests:update"

Validate contract request status

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

...

If status is changed to APPROVED - generate human readable contract request number

  • Use algorithm to generate contract request number
  • contract request number structure XXXX-1234-5678-9012-345-C , where:
    • XXXX - series: numbers + only some letters (A, E, H, K, M, P, T, X)
    • 1234-5678-9012-345 - randomly generated numbers and letters A, E, H, K, M, P, T, X.
    •  C - checksum: Should be calculated using the Damn algorithm or Verhoeff algorithm

Validate uniqueness of human readable contract request number

  • generate contract_request_number
  • Search contract request number in contract_requests.contract_number
  • if exists = go to 'generate contract request number'
  • else save contract_request_number to contract_request

Generate Printout form 

If status is changed to APPROVED - generate printout form

Invoke MAN to render printuot form.

Request mapping:

Parameter
Source
idCONTRACT_REQUEST

...