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.
Metadata: Sleutelwaarden met extra informatie voor deze notificatie. De mogelijke sleutelwaarden kunnen verschillen afhankelijk van de notificatie.
CreatedOn: Tijdstip waarop de notificatie werd aangemaakt.
ExpiresOn: tijdstip waarop de notificatie zal verwijderd worden uit het GIPOD-systeem.
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:
Afgehandeld
Gelezen
… (statussen te valideren 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
Opvragen van een lijst van notificaties obv volgende criteria:
organisatie
Indien de organisatie niet wordt meegegeven worden alle notificaties binnen de organisatie-structuur van de ingelogde organisatie teruggegeven.
type notificatie
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.
notificationTypeId
lijst van notificatietype id’s
notificationCategoryId
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", "notificationCategory": { "@id": "api\v1\taxonomies\notification-categories\e20f39f9-a2d8-4161-8a4a-fe1d3b9b17af", "prefLabel":"Information" }, "notificationType": { "@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" }, "metadata": [{ "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" }
Add Comment