develop #38

Merged
bboterm merged 451 commits from develop into main 2025-11-19 14:28:14 +00:00
Showing only changes of commit 6015347db3 - Show all commits

View File

@ -74,9 +74,12 @@ paths:
timestamp: "2025-10-02T14:00:00Z" timestamp: "2025-10-02T14:00:00Z"
isActive: false isActive: false
_links: _links:
edit: self:
href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 href: /notificationsubscriptions?notificationSubscriptionId=5bedce29-af0c-4f3c-b182-2caa8a1f9377
method: PATCH method: GET
add_activity:
href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377/subscriptionactivities
method: POST
delete: delete:
href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377 href: /notificationsubscriptions/5bedce29-af0c-4f3c-b182-2caa8a1f9377
method: DELETE method: DELETE
@ -95,9 +98,12 @@ paths:
timestamp: "2025-10-02T14:00:00Z" timestamp: "2025-10-02T14:00:00Z"
isActive: true isActive: true
_links: _links:
edit: self:
href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd href: /notificationsubscriptions?notificationSubscriptionId=39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd
method: PATCH method: GET
add_activity:
href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd/subscriptionactivities
method: POST
delete: delete:
href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd href: /notificationsubscriptions/39e8d8e6-5c85-49b6-ba4b-62e47fa4f7fd
method: DELETE method: DELETE
@ -145,8 +151,8 @@ paths:
value: value:
notifcationCategoryId: 1 notifcationCategoryId: 1
customerProfileId: 1337 customerProfileId: 1337
subscriptionActivities: subscriptionActivity:
- user: "1001337" user: "1001337"
timestamp: "2025-10-02T14:00:00Z" timestamp: "2025-10-02T14:00:00Z"
isActive: true, isActive: true,
responses: responses:
@ -157,18 +163,9 @@ paths:
schema: schema:
$ref: "#/components/schemas/PostNotificationSubscriptionResponse" $ref: "#/components/schemas/PostNotificationSubscriptionResponse"
examples: examples:
fullNotificationSubscriptionResponse: notificationSubscriptionResponse:
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:
@ -276,36 +273,231 @@ paths:
examples: examples:
addSubscriptionActivityResponse: addSubscriptionActivityResponse:
value: value:
notificationSubscriptionId: 5bedce29-af0c-4f3c-b182-2caa8a1f9377 subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387
eventTypeChannel: "400":
eventTypeChannelId: 22a9ab1cb-b1a3-482e-bae3-9a517a8cfb4f description: Bad request
eventType: content:
eventTypeId: 15 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"
/notificationcategories:
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: eventOrigin:
eventOriginId: 1 eventOriginId: 1
name: GBO name: GBO
description: Events originated at GBO name: ALERTS, TRAVEL_SCHEME
name: Travel subName: CI
subname: Missing CKO prettyName: Check In
prettyName: Checkout gemist optinRequired: false
optInRequired: true - 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: channel:
channelId: 1 channelId: 1
name: push name: push
isDefault: true isDefault: true
isMandatory: false isMandatory: false
customerProfileId: 1337 - eventTypeChannelId: da2deb4c-ce77-4b5f-aecc-ddebfd14349d
ovpayTokenId: 42 channel:
# deviceId: 7122a988-a00a-417d-a5b4-da2d91354976 channelId: 2
subscriptionActivities: name: email
- subscriptionActivityId: 30b32657-1ba1-44e0-8868-4db807695387 isDefault: false
user: "1001337" isMandatory: false
timestamp: "2025-10-08T15:00:00Z" - eventTypeId: 3
isActive: true eventOrigin:
- subscriptionActivityId: 90353a1d-c5bd-44c2-aa75-57873b8071c8 eventOriginId: 1
user: "1001338" name: GBO
timestamp: "2025-10-02T14:00:00Z" name: ALERTS, PAD
isActive: false 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:
@ -337,8 +529,9 @@ paths:
/eventorigins: /eventorigins:
get: get:
summary: Get all event origins summary: Get all event origins
deprecated: true
tags: tags:
- References - References (not for MVP)
parameters: parameters:
- name: name - name: name
in: query in: query
@ -403,8 +596,9 @@ paths:
/channels: /channels:
get: get:
summary: Get all channels summary: Get all channels
deprecated: true
tags: tags:
- References - References (not for MVP)
parameters: parameters:
- name: name - name: name
in: query in: query
@ -459,72 +653,12 @@ 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 - References (not for MVP)
parameters: parameters:
- name: name - name: name
in: query in: query
@ -601,8 +735,9 @@ paths:
/eventtypecategories: /eventtypecategories:
get: get:
summary: Get all event type categories summary: Get all event type categories
deprecated: true
tags: tags:
- References - References (not for MVP)
parameters: parameters:
- name: name - name: name
in: query in: query
@ -678,8 +813,9 @@ paths:
/eventtypechannels: /eventtypechannels:
get: get:
summary: Get all event type channels summary: Get all event type channels
deprecated: true
tags: tags:
- References - References (not for MVP)
parameters: parameters:
- name: name - name: name
in: query in: query
@ -821,9 +957,7 @@ components:
customerProfileId: customerProfileId:
type: integer type: integer
example: 1337 example: 1337
subscriptionActivities: subscriptionActivity:
type: array
items:
type: object type: object
properties: properties:
user: user:
@ -844,7 +978,12 @@ components:
- notifcationCategoryId - notifcationCategoryId
- customerProfileId - customerProfileId
PostNotificationSubscriptionResponse: PostNotificationSubscriptionResponse:
$ref: "#/components/schemas/NotificationSubscription" type: object
properties:
notificationSubscriptionId:
type: string
format: uuid
example: 5bedce29-af0c-4f3c-b182-2caa8a1f9377
PostSubscriptionActivityRequest: PostSubscriptionActivityRequest:
type: object type: object
properties: properties:
@ -863,7 +1002,12 @@ components:
- timestamp - timestamp
- isActive - isActive
PostSubscriptionActivityResponse: PostSubscriptionActivityResponse:
$ref: "#/components/schemas/NotificationSubscription" type: object
properties:
subscriptionActivityId:
type: string
format: uuid
example: 30b32657-1ba1-44e0-8868-4db807695387
GetEventOriginsResponse: GetEventOriginsResponse:
type: object type: object
properties: properties:
@ -954,6 +1098,10 @@ 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
@ -996,6 +1144,10 @@ components:
name: name:
type: string type: string
example: Mijn Reizen example: Mijn Reizen
eventTypes:
type: array
items:
$ref: "#/components/schemas/EventType"
required: required:
- notifcationCategoryId - notifcationCategoryId
- name - name
@ -1013,7 +1165,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