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

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

Version 1 Next »

Purpose

This WS allows to terminate a declaration from Admin panel.

Key points

  1. This is a graphQl method used in Administration panel only.

  2. Only authenticated and authorized NHS employee with appropriate scope can terminate a declaration.

  3. Only active declaration can be terminated.

Specification

Authorization

  • Verify the validity of access token

    • in case of error - return 401 (“Invalid access token”) in case of validation fails

  • Verify that token is not expired

    • in case of error - return 401 (“Invalid access token”)

  • Check user scopes in order to perform this action (scope = 'declaration:terminate')

    • return 403 (“Your scope does not allow to access this resource. Missing allowances: declaration:terminate”) in case of invalid scope(s)

Validate legal entity

  • Extract client_id from token.

  • Check client scopes in order to perform this action (scope = 'declaration:terminate')

    • in case of error - return 403 (“Your scope does not allow to access this resource. Missing allowances: declaration:terminate”)

  • Check client type (type = NHS)

    • In case of error - return 403 ('You don't have permission to access this resource')

Validate request

  • Check declaration_id submitted

    • in case not submitted - return 422 ('required property declaration_id was not present')

    • in case does not exist in OPS db - return 404 ('Declaration not found')

    • in case exists in OPS db but is not active - return 409 ('Declaration is not active')

  • Check reason submitted

    • in case not submitted - return 422 ('required property reason was not present')

    • in case value is not from DECLARATION_REASON dictionary - return 422 ('Value is not allowed in enum')

Service logic

  1. Update data:

    1. declarations table by declaration_id

      1. set status = ‘terminated’

      2. set reason = $.reason

      3. set reason_description = $.reason_description

      4. set updated_at, updated_by

  • No labels