ЕСОЗ - публічна документація

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 2 Next »

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
  • No labels