Document toolboxDocument toolbox

API Notificaties

Wat

Notificaties zijn berichten bedoeld ter ondersteuning van de business processen binnen het GIPOD-systeem. De bestemmeling van een notificatie is steeds een organisatie gekend binnen het GIPOD-systeem. Op basis van een notificatie wordt een organisatie verwittigd van een bepaalde gebeurtenis binnen het GIPOD-systeem zodat deze kan nagaan of er al dan niet een actie moet worden ondernomen.

Notificatie flow

GIPOD voorziet in een systeem van passieve notificaties. Dit is een pull systeem waarbij een organisatie relevante notificaties komt ophalen in het GIPOD-systeem.

 

Notificatie bericht

Een notificatie bevat volgende informatie:

  • Id:

    • Unieke identificator van de notificatie (Guid)

  • Category:

    • Categorie van de notificatie.

    • Mogelijke waarden:

      • Informatie.

      • Waarschuwing.

      • Taak.

  • NotificatieType:

    • Type van de notificatie.

  • OrganisationId:

    • De organisatie waarvoor de notificatie bestemd is.

    • Indien de OrganisatieId niet is ingevuld betreft het een notificatie die voor alle organisaties relevant zijn.

  • Data:

    • Lijst van sleutelwaarden met extra informatie voor deze notificatie.

    • De mogelijke sleutelwaarden verschillen per notificatie type.

  • CreatedOn:

    • Tijdstip waarop de notificatie werd aangemaakt door het GIPOD-systeem.

  • ExpiresOn:

    • Tijdstip waarop de notificatie niet meer zal beschikbaar zijn in de zoek resultaten.

  • Status:

    • Bij aanmaak van een notificatie krijgt deze de status: Nieuw.

Api

Volgende functionaliteiten worden voorzien:

  • Taxonomieën

    • Opvragen van de beschikbare notificatie types.

    • Opvragen notificatie categoriën.

    • Opvragen notificatie statussen.

  • Zoeken notificaties op basis van filter criteria.

  • Opvragen detail van een bepaalde notificatie.

  • Aanpassen status van een bepaalde notificatie.

Opvragen notificatie types

Opvragen van de beschikbare notificatie types.

  • GET api\v1\taxonomies\notificationtypes

  • GET api\v1\taxonomies\notificationtypes\{notificationtypeid}

Opvragen notificatie categorieën

Volgende categorieën worden voorzien:

  • Information

  • Warning

  • Task

Endpoints:

  • GET api\v1\taxonomies\notification-categories

  • GET api\v1\taxonomies\notification-categories\{notificationcategoryid}

Opvragen notificatie statussen

Volgende statussen worden voorzien:

  • Nieuw

  • Afgehandeld

  • … (statussen te valideren en nog verder te definiëren)

Endpoints:

De notificatie statussen worden toegevoegd in de statussen taxonomies API.

  • GET api\v1\taxonomies\statuses

  • GET api\v1\taxonomies\statuses\{notificationstatusid}

Zoeken notificaties

Zoeken notificaties bestemd voor de geautentiseerde organisatie. Vervallen notificaties worden niet teruggeven in het resultaat.

Volgende criteria worden voorzien:

  • organisatie

    • Indien de organisatie niet wordt meegegeven worden alle notificaties binnen de organisatie-structuur van de ingelogde organisatie teruggegeven.

  • notificatie type

  • category

  • creatie tijdstip

  • status

Endpoint:

  • GET api\v1\notifications?

Query string parameters:

  • organisationId:

    • lijst van organisatie id’s.

    • organisatie id’s zijn organisatie binnen de organisatie structuur van de inlogde organisatie.

  • typeId

    • lijst van notificatietype id’s

  • categoryId

    • lijst van notificatie categorie id’s

  • createdOn

    • start

    • end

  • statusId

    • lijst van notificatie status id’s

Example:

  • GET api\v1\notifications?notificationTypeId=eafe63a5-cbea-4a24-b16b-9932b9a2f324

{ "@context": "http://www.w3.org/ns/hydra/context.jsonld", "@id": "\api\v1\notifications", "@type": "Collection", "totalItems": "23", "member": [ { "@id": "api\v1\notifications\a26e477c-f10b-4d7f-bba9-60228e092b75", notificationType": { "id":"api\v1\taxonomies\notificationtypes\eafe63a5-cbea-4a24-b16b-9932b9a2f324", "prefLabel":"TrenchSynergyRequestReceived", } }, { "@id": "\api\v1\notifications\d454970a-35d5-41c9-a832-dc940c061e17", notificationType": { "id":"api\v1\taxonomies\notificationtypes\eafe63a5-cbea-4a24-b16b-9932b9a2f324", "prefLabel":"TrenchSynergyRequestReceived", } }, ... ] }

Opvragen detail van een notificatie

Endpoint:

  • GET api\v1\notifications\{notificationid}

Example:

  • GET api\v1\notifications\8bc826d8-645b-4926-b4dd-1cfbeea6d289

Response body:

{ "@id":"api\v1\notifications\8bc826d8-645b-4926-b4dd-1cfbeea6d289", "value":"8bc826d8-645b-4926-b4dd-1cfbeea6d289", "category": { "@id": "api\v1\taxonomies\notification-categories\e20f39f9-a2d8-4161-8a4a-fe1d3b9b17af", "prefLabel":"Information" }, "type": { "@id":"api\v1\taxonomies\notificationtypes\eafe63a5-cbea-4a24-b16b-9932b9a2f324", "prefLabel":"TrenchSynergyRequestReceived" }, "organisation": { "@id":"api\v1\organisations\17596932-6e85-4103-b037-824bbfcd74d0", "preferredName":"Agentschap Informatie Vlaanderen" }, "data": [{ "key":"TrenchSynergyRequest", "value":"api\v1\groundworks\2345\trench-synergy-requests\1" }], "createdOn":"2020-04-07T06:57:39Z", "expiresOn":"2020-05-07T06:57:39Z", "status": { "@id":"api\v1\taxonomies\statuses\48c22307-fce2-41c9-910a-b57f5b471246", "prefLabel":"Behandeld" } }

Aanpassen status notificatie

Nadat een organisatie een notificatie behandeld heeft kan de organisatie de status aanpassen van de notificatie. De status van een notificatie is steeds op het niveau van de organisatie.

Endpoint:

PUT api\v1\notifications\{notificationid}

Request Body:

{ "statusId":"48c22307-fce2-41c9-910a-b57f5b471246" }