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"
}