Compare commits

..

No commits in common. "14d3891618cd3d7ec6dfe02a9093aaec572d97f5" and "47204b3b75fa4420603b06687ee248355f8491c5" have entirely different histories.

View File

@ -60,8 +60,8 @@ paths:
value: value:
notificationSubscriptions: notificationSubscriptions:
- notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 - notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
notificationCategory: notifcationCategory:
notificationCategoryId: 1 notifcationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
customerProfileId: 1337 customerProfileId: 1337
subscriptionActivities: subscriptionActivities:
@ -73,9 +73,16 @@ paths:
user: "1001337" user: "1001337"
timestamp: "2025-10-02T14:00:00Z" timestamp: "2025-10-02T14:00:00Z"
isActive: false isActive: false
_links:
edit:
href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377
method: PATCH
delete:
href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377
method: DELETE
- notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd - notificationSubscriptionId: 39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd
notificationCategory: notifcationCategory:
notificationCategoryId: 2 notifcationCategoryId: 2
name: Mijn Passen name: Mijn Passen
customerProfileId: 1338 customerProfileId: 1338
subscriptionActivities: subscriptionActivities:
@ -87,6 +94,13 @@ paths:
user: "1001338" user: "1001338"
timestamp: "2025-10-02T14:00:00Z" timestamp: "2025-10-02T14:00:00Z"
isActive: true isActive: true
_links:
edit:
href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd
method: PATCH
delete:
href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd
method: DELETE
href: null href: null
"400": "400":
description: Bad request description: Bad request
@ -129,12 +143,12 @@ paths:
examples: examples:
fullNotificationSubscriptionRequest: fullNotificationSubscriptionRequest:
value: value:
notificationCategoryId: 1 notifcationCategoryId: 1
customerProfileId: 1337 customerProfileId: 1337
subscriptionActivity: subscriptionActivities:
user: "1001337" - user: "1001337"
timestamp: "2025-10-02T14:00:00Z" timestamp: "2025-10-02T14:00:00Z"
isActive: true, isActive: true,
responses: responses:
"201": "201":
description: Notification subscription created successfully description: Notification subscription created successfully
@ -143,9 +157,18 @@ paths:
schema: schema:
$ref: "#/components/schemas/PostNotificationSubscriptionResponse" $ref: "#/components/schemas/PostNotificationSubscriptionResponse"
examples: examples:
notificationSubscriptionResponse: fullNotificationSubscriptionResponse:
value: value:
notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
notifcationCategory:
notifcationCategoryId: 1
name: Mijn Reizen
customerProfileId: 1337
subscriptionActivities:
- subscriptionActivityId: 90353a1d-c5bd-44c2-aa75-57873b8071c8
user: "1001337"
timestamp: "2025-10-02T14:00:00Z"
isActive: true
"400": "400":
description: Bad request description: Bad request
content: content:
@ -253,231 +276,36 @@ paths:
examples: examples:
addSubscriptionActivityResponse: addSubscriptionActivityResponse:
value: value:
subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
"400": eventTypeChannel:
description: Bad request eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f
content: eventType:
application/json: eventTypeId: 15
schema: eventOrigin:
type: object eventOriginId: 1
$ref: "#/components/schemas/400Response" name: GBO
"401": description: Events originated at GBO
description: Unauthorized name: Travel
content: subname: Missing CKO
application/json: prettyName: Checkout gemist
schema: optInRequired: true
type: object channel:
$ref: "#/components/schemas/401Response" channelId: 1
"404": name: push
description: Not found isDefault: true
content: isMandatory: false
application/json: customerProfileId: 1337
schema: ovpayTokenId: 42
type: object # deviceId: 7122a988-a00a-417d-a5b4-da2d91354976
$ref: "#/components/schemas/404Response" subscriptionActivities:
"500": - subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387
description: Internal server error user: "1001337"
content: timestamp: "2025-10-08T15:00:00Z"
application/json: isActive: true
schema: - subscriptionActivityId: 90353a1d-c5bd-44c2-aa75-57873b8071c8
type: object user: "1001338"
$ref: "#/components/schemas/500Response" timestamp: "2025-10-02T14:00:00Z"
/notificationcategories: isActive: false
get:
tags:
- Notification Categories
summary: Get all notification categories.
parameters:
- name: expand
in: query
schema:
type: string
enum: [none, eventType, eventTypeChannel]
default: none
description: "Expand nested attributes. Possible values: `none`, `eventType`, and `eventTypeChannel`."
responses:
"200":
description: OK
content:
application/json:
schema:
$ref: "#/components/schemas/GetNotificationCategoriesResponse"
examples:
getNotifactionCategories?expand=none:
summary: Return all the notification categories without nested attributes (expand=none)
value:
notificationCategories:
- notificationCategoryId: 1
name: Nieuwsbrief
- notificationCategoryId: 2
name: Mijn Reizen
- notificationCategoryId: 3
name: Mijn Passen
getNotifactionCategories?expand=eventType:
summary: Return all the notification categories with nested event types (expand=eventType)
value:
notificationCategories:
- notificationCategoryId: 1
name: Nieuwsbrief
eventTypes:
- eventTypeId: 1
eventOrigin:
eventOriginId: 6
name: Maileon
name: HTM nieuwsbrief
subName: ""
prettyName: HTM nieuwsbrief
optinRequired: false
- notificationCategoryId: 2
name: Mijn Reizen
eventTypes:
- eventTypeId: 2
eventOrigin:
eventOriginId: 1
name: GBO
name: ALERTS, TRAVEL_SCHEME
subName: CI
prettyName: Check In
optinRequired: false
- eventTypeId: 3
eventOrigin:
eventOriginId: 1
name: GBO
name: ALERTS, PAD
subName: null
prettyName: Profielgegevens op de pas
optinRequired: false
- notificationCategoryId: 3
name: Mijn Passen
eventTypes:
- eventTypeId: 4
eventOrigin:
eventOriginId: 1
name: GBO
name: ALERTS, CARD
subName: null
prettyName: Mijn passen
optinRequired: false
- eventTypeId: 5
eventOrigin:
eventOriginId: 1
name: GBO
name: ALERTS, PAD
subName: null
prettyName: Profielgegevens op de pas
optinRequired: false
getNotifactionCategories?expand=eventTypeChannel:
summary: Return all the notification categories with all nested attributes (expand=eventTypeChannel)
value:
notificationCategories:
- notificationCategoryId: 1
name: Nieuwsbrief
eventTypes:
- eventTypeId: 1
eventOrigin:
eventOriginId: 6
name: Maileon
name: HTM nieuwsbrief
subName: ""
prettyName: HTM nieuwsbrief
optinRequired: false
eventTypeChannels:
- eventTypeChannelId: 447a1116-6cd7-4645-8c3d-43237b6186cd
channel:
channelId: 2
name: email
isDefault: true
isMandatory: false
- notificationCategoryId: 2
name: Mijn Reizen
eventTypes:
- eventTypeId: 2
eventOrigin:
eventOriginId: 1
name: GBO
name: ALERTS, TRAVEL_SCHEME
subName: CI
prettyName: Check In
optinRequired: false
eventTypeChannels:
- eventTypeChannelId: ccc8c025-06b5-4928-a632-23e1c55cd173
channel:
channelId: 1
name: push
isDefault: true
isMandatory: false
- eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d
channel:
channelId: 2
name: email
isDefault: false
isMandatory: false
- eventTypeId: 3
eventOrigin:
eventOriginId: 1
name: GBO
name: ALERTS, PAD
subName: null
prettyName: Profielgegevens op de pas
optinRequired: false
eventTypeChannels:
- eventTypeChannelId: 8e7df8f1-7e50-482f-8301-d399e75fd432
channel:
channelId: 1
name: push
isDefault: true
isMandatory: false
- eventTypeChannelId: 72960a92-1855-469f-9cfd-5d72f57106f2
channel:
channelId: 2
name: email
isDefault: false
isMandatory: false
- notificationCategoryId: 3
name: Mijn Passen
eventTypes:
- eventTypeId: 4
eventOrigin:
eventOriginId: 1
name: GBO
name: ALERTS, CARD
subName: null
prettyName: Mijn passen
optinRequired: false
eventTypeChannels:
- eventTypeChannelId: be07c7bb-714b-4637-acf5-a67025ad8e60
channel:
channelId: 1
name: push
isDefault: true
isMandatory: false
- eventTypeChannelId: 0c797b5a-ed34-494b-8c64-0a832830d392
channel:
channelId: 2
name: email
isDefault: false
isMandatory: false
- eventTypeId: 5
eventOrigin:
eventOriginId: 1
name: GBO
name: ALERTS, PAD
subName: null
prettyName: Profielgegevens op de pas
optinRequired: false
eventTypeChannels:
- eventTypeChannelId: b910368f-c045-4e8e-b01d-bcbc78708bac
channel:
channelId: 1
name: push
isDefault: true
isMandatory: false
- eventTypeChannelId: 93e773da-ba3b-48da-9a0e-ee478eaa752f
channel:
channelId: 2
name: email
isDefault: false
isMandatory: false
"400": "400":
description: Bad request description: Bad request
content: content:
@ -509,9 +337,8 @@ paths:
/eventorigins: /eventorigins:
get: get:
summary: Get all event origins summary: Get all event origins
deprecated: true
tags: tags:
- References (not for MVP) - References
parameters: parameters:
- name: name - name: name
in: query in: query
@ -576,9 +403,8 @@ paths:
/channels: /channels:
get: get:
summary: Get all channels summary: Get all channels
deprecated: true
tags: tags:
- References (not for MVP) - References
parameters: parameters:
- name: name - name: name
in: query in: query
@ -633,12 +459,72 @@ paths:
schema: schema:
type: object type: object
$ref: "#/components/schemas/500Response" $ref: "#/components/schemas/500Response"
/notificationcategories:
get:
summary: Get all notification categories
tags:
- References
parameters:
- name: name
in: query
required: false
schema:
type: string
description: Filter by notification category name (case-insensitive, partial match)
responses:
"200":
description: A list of notification categories
content:
application/json:
schema:
$ref: "#/components/schemas/GetNotificationCategoriesResponse"
examples:
notificationCategoriesResponse:
value:
notificationCategories:
- notifcationCategoryId: 1
name: Mijn Reizen
- notifcationCategoryId: 2
name: Mijn Passen
- notifcationCategoryId: 3
name: Service Alerts
- notifcationCategoryId: 4
name: Service Berichten
- notifcationCategoryId: 5
name: Mijn Betalingen
"400":
description: Bad request
content:
application/json:
schema:
type: object
$ref: "#/components/schemas/400Response"
"401":
description: Unauthorized
content:
application/json:
schema:
type: object
$ref: "#/components/schemas/401Response"
"404":
description: Not found
content:
application/json:
schema:
type: object
$ref: "#/components/schemas/404Response"
"500":
description: Internal server error
content:
application/json:
schema:
type: object
$ref: "#/components/schemas/500Response"
/eventtypes: /eventtypes:
get: get:
summary: Get all event types summary: Get all event types
deprecated: true
tags: tags:
- References (not for MVP) - References
parameters: parameters:
- name: name - name: name
in: query in: query
@ -715,9 +601,8 @@ paths:
/eventtypecategories: /eventtypecategories:
get: get:
summary: Get all event type categories summary: Get all event type categories
deprecated: true
tags: tags:
- References (not for MVP) - References
parameters: parameters:
- name: name - name: name
in: query in: query
@ -747,7 +632,7 @@ paths:
prettyName: Checkout gemist prettyName: Checkout gemist
optInRequired: true optInRequired: true
notificationCategory: notificationCategory:
notificationCategoryId: 1 notifcationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
- eventType: - eventType:
eventTypeId: 16 eventTypeId: 16
@ -760,7 +645,7 @@ paths:
prettyName: Checkin gemist prettyName: Checkin gemist
optInRequired: true optInRequired: true
notificationCategory: notificationCategory:
notificationCategoryId: 1 notifcationCategoryId: 1
name: Mijn Reizen name: Mijn Reizen
"400": "400":
description: Bad request description: Bad request
@ -793,9 +678,8 @@ paths:
/eventtypechannels: /eventtypechannels:
get: get:
summary: Get all event type channels summary: Get all event type channels
deprecated: true
tags: tags:
- References (not for MVP) - References
parameters: parameters:
- name: name - name: name
in: query in: query
@ -895,7 +779,7 @@ components:
type: string type: string
format: uuid format: uuid
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
notificationCategory: notifcationCategory:
$ref: "#/components/schemas/NotificationCategory" $ref: "#/components/schemas/NotificationCategory"
customerProfileId: customerProfileId:
type: integer type: integer
@ -926,44 +810,41 @@ components:
- isActive - isActive
required: required:
- notificationSubscriptionId - notificationSubscriptionId
- notificationCategory - notifcationCategory
- customerProfileId - customerProfileId
PostNotificationSubscriptionRequest: PostNotificationSubscriptionRequest:
type: object type: object
properties: properties:
notificationCategoryId: notifcationCategoryId:
type: integer type: integer
example: 1 example: 1
customerProfileId: customerProfileId:
type: integer type: integer
example: 1337 example: 1337
subscriptionActivity: subscriptionActivities:
type: object type: array
properties: items:
user: type: object
type: string properties:
example: "1001337" user:
timestamp: type: string
type: string example: "1001337"
format: date-time timestamp:
example: "2025-10-02T15:00:00Z" type: string
isActive: format: date-time
type: boolean example: "2025-10-02T15:00:00Z"
example: true isActive:
required: type: boolean
- user example: true
- timestamp required:
- isActive - user
- timestamp
- isActive
required: required:
- notificationCategoryId - notifcationCategoryId
- customerProfileId - customerProfileId
PostNotificationSubscriptionResponse: PostNotificationSubscriptionResponse:
type: object $ref: "#/components/schemas/NotificationSubscription"
properties:
notificationSubscriptionId:
type: string
format: uuid
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
PostSubscriptionActivityRequest: PostSubscriptionActivityRequest:
type: object type: object
properties: properties:
@ -982,12 +863,7 @@ components:
- timestamp - timestamp
- isActive - isActive
PostSubscriptionActivityResponse: PostSubscriptionActivityResponse:
type: object $ref: "#/components/schemas/NotificationSubscription"
properties:
subscriptionActivityId:
type: string
format: uuid
example: 30b32657-1ba1-44e0-8868-4db807695387
GetEventOriginsResponse: GetEventOriginsResponse:
type: object type: object
properties: properties:
@ -1078,10 +954,6 @@ components:
optInRequired: optInRequired:
type: boolean type: boolean
example: true example: true
eventTypeChannels:
type: array
items:
$ref: "#/components/schemas/EventTypeChannel"
required: required:
- eventTypeId - eventTypeId
- eventOrigin - eventOrigin
@ -1118,18 +990,14 @@ components:
NotificationCategory: NotificationCategory:
type: object type: object
properties: properties:
notificationCategoryId: notifcationCategoryId:
type: integer type: integer
example: 1 example: 1
name: name:
type: string type: string
example: Mijn Reizen example: Mijn Reizen
eventTypes:
type: array
items:
$ref: "#/components/schemas/EventType"
required: required:
- notificationCategoryId - notifcationCategoryId
- name - name
400Response: 400Response:
type: object type: object
@ -1145,7 +1013,7 @@ components:
description: description:
type: string type: string
example: >- example: >-
Bad Request: Input parameters missing! Please fill in at least 1 'Bad Request: Input parameters missing! Please fill in at least 1
valid input parameter. valid input parameter.
401Response: 401Response:
type: object type: object