Versions Compared

Key

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

...

Table of Contents

Specification

TERMINATE contract

Purpose

This WS allows to terminate contract either by NHS or Legal Entity Owner.

Request

  • status_reason

Authorize

  1. Verify the validity of access token
    1. in case of error return 401 ('Access denied')
  2. Check user scope contract:termiante in order to perform this action
    1. in case of error generate 401 response ('Invalid scopes')

Validate User

  1. Extract legal_entity_id (client_id) from token.

    1. Check client_id=contractor_legal_entity_id  or client_id=nhs_legal_entity_id
      1. in case of error return 403 "User is not allowed to perform this action"
  2. Extract token →  users.id → party_users.party_id → employee_id
    1. Check (employees.employee_id=contractor_owner_id and client_id=employee.legal_entity_id) or (employees.employee_id=nhs_signer_id and client_id=employee.legal_entity_id)
      1. in case of error return 403 "User is not allowed to perform this action"

Validate contract request status

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

Response

mapping


field
value
statusTERMINATED
status_reason$.status_reason
updated_atnow()
updated_by$.user_id


Auto termination

Fetch all contract with end_date<now(). Set status and status reason for such contract as below:

field
value
statusTERMINATED
status_reason$.auto_expired
updated_atnow()
updated_by$.user_id


Add status to event manager

After status was changed (status = TERMINATED) - add new status to event_manager


field
value
event_typeStatusChangeEvent
entity_typeContract
entity_id$.id
properties.status.new_value$.status
event_time$.update_at
changed_by$.changed_by