Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel3

Required parameters are marked with "*"

...

Purpose

...

This method allows to update existing contract divisions for contracts with GB_CBP type through the NHS IT system

Specification

...

@Нікодім Святогорцев
Page Properties

Project Name

COVID-certificate

Project abreviation

SVC

Developer

Розробник методу API. Наприклад, Edenlab

Project Manager

@Єлизавета Гессен-Дармштадська

Tech Lead

@Іоанн Воїнов

Product Owner

Вusiness analyst

@Пантелеймон Нікомедійський

Status

Status
colourGreen
titleAPPROVED

Version

1.0

Date of release

Link

https://uaehealthapiehealthmisapi1.docs.apiary.io/#reference/private.-contracts/private-contract-divisions/private.-update-contract-division

Resource

/api/admin/contract_divisions/{{id}}

Scope

private_contracts:write

Components

Зазначається перелік бізнес компонентів, які використовують цей метод, наприклад: ePrescriptionContracts

Microservices

Перелік мікросервісів, які використовує метод API. Наприклад: Auth, ABACAPI paragraph not found

Protocol type

Тип протоколу, який використовується запитом, наприклад: SOAP | REST

Request type

PUT

Sync/Async

Метод є синхронним чи асинхронним?Sync

Public/Private/Internal

Private

Logic

...

API paragraph not found

Input parameters

...

This method allows to update existing contract divisions for contracts with GB_CBP type through the NHS IT system

Input parameters

Input parameter

Values

Type

Description

Example

id

String

01f37f5-52c8-477e-aba5-a1d01876d210

что делать с атрибутами?? оставлять или вообще их не писать? ---->

division_id

string

Employee identifier

4b6b3b53-282a-415b-8f88-f1c7ab65f4a3

что делать с атрибутами?? оставлять или вообще их не писать? ---->

contract_id

string

Division identifier

71e51746-cc88-46e1-95ab-19cc5911d74c

Request structure

...

See on Apiary

Example:

Expand
titleRequest example
Code Block
{
  "division_id": "4b6b3b53-282a-415b-8f88-f1c7ab65f4a3",
  "contract_id": "71e51746-cc88-46e1-95ab-19cc5911d74c"
}

Authorize

...

  1. Verify the validity of api-key

    1. Return 401 in case validation fails

  2. Verify the validity of token

    1. Return 401 in case validation fails

  3. Check scopes in order to perform this action (scope = 'private_contracts:write')

    1. Return 403 in case invalid scope(s)

Request to process the request using a token in the headers

Headers

...

Наприклад:

  • Content-Type:application/json

  • api-key:c2778f3064753ea70de870a53795f5c9

Validate request*

  1. Only authenticated and authorized user can use this service

  2. Contract division must be valid and consistent, i.e. all "foreign keys" must be valid

Request data validation

...

The following attributes must be validated

  1. Validate id

    1. Check that contract_division record with id from URL exist and is_active = true

      1. in case of error return 404 error ('Contract division with such id is not found')

    2. Check that contract from contract_division.contract_id have type = 'GB_CBP' and is_active = true

      1. in case of error return 409 error ('Only contract divisions for contract with type GB_CBP can be updated')

  2. Validate division_id

    1. Check that division exist and is_active = true

      1. in case of error return 404 error $.division_id ('Division is not found')

    2. Check that division_id correspond to contractor legal entity through divisions.legal_entity_id=contracts.contractor_legal_entity_id

      1. in case of error return 409 error $.division_id ('Division is not correspond to contractor legal entity')

  3. Validate contract_id

    1. Check that contract exist and is_active = true and type = GB_CBP

      1. in case error return 409 error $.contract_id ('Contract must be an active and with GB_CBP type')

Validate request

  1. Only authenticated and authorized user can use this service

  2. Contract division must be valid and consistent, i.e. all "foreign keys" must be valid

Processing

...

  1. Update system attributes

Attribute

Value

updated_at

now() timastamp

updated_by

User from token

...

3. Audit log (trigger logic)

Response structure

...

See on Apiary

Example:

Expand
titleResponse example
Code Block
{
  "meta": {
    "code": 200,
    "url": "https://example.com/resource",
    "type": "object",
    "request_id": "req-adasdoijasdojsda"
  },
  "data": {
    "id": "8be63914-a278-470b-b868-1af5b9087332",
    "division_id": "4b6b3b53-282a-415b-8f88-f1c7ab65f4a3",
    "contract_id": "71e51746-cc88-46e1-95ab-19cc5911d74c",
    "is_active": true,
    "inserted_at": "2017-04-20T19:14:13Z",
    "inserted_by": "e1453f4c-1077-4e85-8c98-c13ffca0063e",
    "updated_at": "2017-04-20T19:14:13Z",
    "updated_by": "2922a240-63db-404e-b730-09222bfeb2dd"
  }
}

Post-processing processes*

Що має відбутися в ЦБД після опрацювання та відправлення відповіді, тощо

HTTP status codes

...

HTTP status code

Message

What caused the error

 200

 

 

...