From 2d742ca3f18359a5f1f7c106bb1942f6f0b91277 Mon Sep 17 00:00:00 2001 From: "b.boterman@htm.nl" Date: Thu, 5 Feb 2026 13:13:15 +0100 Subject: [PATCH] OVPAY-973 - Added query param deviceId for GET and PUT notificationpreferences. --- src/openapi/customers/SE-notifications.yaml | 1238 +++++++++++-------- 1 file changed, 726 insertions(+), 512 deletions(-) diff --git a/src/openapi/customers/SE-notifications.yaml b/src/openapi/customers/SE-notifications.yaml index 1b451b6..6fa24f2 100644 --- a/src/openapi/customers/SE-notifications.yaml +++ b/src/openapi/customers/SE-notifications.yaml @@ -257,6 +257,16 @@ paths: example: Customer required: false description: The role of the HTM employee in the case of the SMP + - name: deviceId + in: query + schema: + type: string + format: uuid + example: 7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b + required: false + description: | + Filter only notification preferences for this device id. Note that as a result, only eventTypeChannels that have resources for this device will be returned. + Also note that once the preferences are PUT back, the deviceId should be provided again to avoid overwriting other device preferences. get: tags: - Notification preferences @@ -321,8 +331,109 @@ paths: }, ], } + oneNotificationSubscriptionFilteredByDeviceId: + summary: Return one notification category with one subscription, filtered for 'Mijn iPhone 12' + value: + { + "notificationCategories": + [ + { + "notificationCategoryId": 1, + "name": "Reizen", + "groupName": "Mijn passen", + "notificationSubscriptions": + [ + { + "notificationSubscriptionId": "04ef3297-e0ff-4db6-90a4-6f0576ef4741", + "customerProfileId": 42, + "ovPayToken": + { + "ovPayTokenId": 112, + "alias": "Mijn ING bankpas", + }, + "isActive": true, + "eventTypes": + [ + { + "eventTypeId": 2, + "name": "GBO", + "subName": "CI", + "prettyName": "Normal Check-in", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + ], + }, + ], + }, + { + "eventTypeId": 3, + "name": "GBO", + "subName": "CO", + "prettyName": "Normal Check-out", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "a1b2c3d4-e5f6-4789-abcd-1234567890ab", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + ], + }, + ], + }, + { + "eventTypeId": 3, + "name": "GBO", + "subName": "MISSING_CO", + "prettyName": "Missing Check-out", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + } multipleNotificationCategoriesWithSubscriptions: - summary: Return multiple notification categories with subscriptions for one customer + summary: Return multiple notification categories with subscriptions for one customer, both push and mail value: { "notificationCategories": @@ -683,10 +794,11 @@ paths: { "notificationSubscriptionId": "f2acafdc-0410-474f-8c8b-ba7c7b550f8e", "customerProfileId": 42, - "ovPayToken": { - "ovPayTokenId": 113, - "alias": "Mijn OV-pas" - }, + "ovPayToken": + { + "ovPayTokenId": 113, + "alias": "Mijn OV-pas", + }, "isActive": true, "eventTypes": [ @@ -839,509 +951,615 @@ paths: application/json: schema: $ref: "#/components/schemas/unavailable" - example: - { - "notificationCategories": - [ - { - "notificationCategoryId": 1, - "name": "Reizen", - "groupName": "Mijn passen", - "notificationSubscriptions": - [ - { - "notificationSubscriptionId": "04ef3297-e0ff-4db6-90a4-6f0576ef4741", - "customerProfileId": 42, - "ovPayToken": + examples: + putMultipleSubscriptionsWithoutFilter: + summary: Put all notification categories with all subscriptions for a single customer, without filtering + value: + { + "notificationCategories": + [ + { + "notificationCategoryId": 1, + "name": "Reizen", + "groupName": "Mijn passen", + "notificationSubscriptions": + [ { - "ovPayTokenId": 112, - "alias": "Mijn ING bankpas", + "notificationSubscriptionId": "04ef3297-e0ff-4db6-90a4-6f0576ef4741", + "customerProfileId": 42, + "ovPayToken": + { + "ovPayTokenId": 112, + "alias": "Mijn ING bankpas", + }, + "isActive": true, + "eventTypes": + [ + { + "eventTypeId": 2, + "name": "GBO", + "subName": "CI", + "prettyName": "Normal Check-in", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": true, + }, + ], + }, + ], + }, + { + "eventTypeId": 3, + "name": "GBO", + "subName": "CO", + "prettyName": "Normal Check-out", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "a1b2c3d4-e5f6-4789-abcd-1234567890ab", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": false, + }, + ], + }, + ], + }, + { + "eventTypeId": 3, + "name": "GBO", + "subName": "MISSING_CO", + "prettyName": "Missing Check-out", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": true, + }, + ], + }, + { + "eventTypeChannelId": "c3d4e5f6-789a-4bcd-ef01-34567890abcd", + "channelId": 2, + "name": "email", + "isMandatory": false, + "resources": + [ + { + "resourceName": "customers", + "resourceIdentifier": "42", + "alias": "stasjo.van.bakel@htm.nl", + "isActive": true, + }, + ], + }, + ], + }, + ], }, - "isActive": true, - "eventTypes": - [ - { - "eventTypeId": 2, - "name": "GBO", - "subName": "CI", - "prettyName": "Normal Check-in", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", - "channelId": 1, - "name": "push", - "isMandatory": false, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": true, - }, - ], - }, - ], - }, - { - "eventTypeId": 3, - "name": "GBO", - "subName": "CO", - "prettyName": "Normal Check-out", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "a1b2c3d4-e5f6-4789-abcd-1234567890ab", - "channelId": 1, - "name": "push", - "isMandatory": false, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": false, - }, - ], - }, - ], - }, - { - "eventTypeId": 3, - "name": "GBO", - "subName": "MISSING_CO", - "prettyName": "Missing Check-out", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", - "channelId": 1, - "name": "push", - "isMandatory": false, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": true, - }, - ], - }, - { - "eventTypeChannelId": "c3d4e5f6-789a-4bcd-ef01-34567890abcd", - "channelId": 2, - "name": "email", - "isMandatory": false, - "resources": - [ - { - "resourceName": "customers", - "resourceIdentifier": "42", - "alias": "stasjo.van.bakel@htm.nl", - "isActive": true, - }, - ], - }, - ], - }, - ], - }, - { - "notificationSubscriptionId": "8469e00a-724a-4e72-b432-fb14c939c9d3", - "customerProfileId": 42, - "ovPayToken": { - "ovPayTokenId": 113, - "alias": "Mijn OV-pas" - }, - "isActive": true, - "eventTypes": - [ - { - "eventTypeId": 2, - "name": "GBO", - "subName": "CI", - "prettyName": "Normal Check-in", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", - "channelId": 1, - "name": "push", - "isMandatory": false, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": true, - }, - ], - }, - ], - }, - { - "eventTypeId": 3, - "name": "GBO", - "subName": "CO", - "prettyName": "Normal Check-out", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "a1b2c3d4-e5f6-4789-abcd-1234567890ab", - "channelId": 1, - "name": "push", - "isMandatory": false, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": false, - }, - ], - }, - ], - }, - { - "eventTypeId": 3, - "name": "GBO", - "subName": "MISSING_CO", - "prettyName": "Missing Check-out", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", - "channelId": 1, - "name": "push", - "isMandatory": false, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": false, - }, - ], - }, - { - "eventTypeChannelId": "c3d4e5f6-789a-4bcd-ef01-34567890abcd", - "channelId": 2, - "name": "email", - "isMandatory": false, - "resources": - [ - { - "resourceName": "customers", - "resourceIdentifier": "42", - "alias": "stasjo.van.bakel@htm.nl", - "isActive": false, - }, - ], - }, - ], - }, - ], - }, - ], - }, - { - "notificationCategoryId": 4, - "name": "Producten", - "groupName": "Mijn passen", - "notificationSubscriptions": - [ - { - "notificationSubscriptionId": "af6305d3-f95d-42af-b22a-4181594d45dc", - "customerProfileId": 42, - "ovPayToken": { - "ovPayTokenId": 112, - "alias": "Mijn ING bankpas", + "notificationSubscriptionId": "8469e00a-724a-4e72-b432-fb14c939c9d3", + "customerProfileId": 42, + "ovPayToken": + { + "ovPayTokenId": 113, + "alias": "Mijn OV-pas", + }, + "isActive": true, + "eventTypes": + [ + { + "eventTypeId": 2, + "name": "GBO", + "subName": "CI", + "prettyName": "Normal Check-in", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": true, + }, + ], + }, + ], + }, + { + "eventTypeId": 3, + "name": "GBO", + "subName": "CO", + "prettyName": "Normal Check-out", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "a1b2c3d4-e5f6-4789-abcd-1234567890ab", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": false, + }, + ], + }, + ], + }, + { + "eventTypeId": 3, + "name": "GBO", + "subName": "MISSING_CO", + "prettyName": "Missing Check-out", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": false, + }, + ], + }, + { + "eventTypeChannelId": "c3d4e5f6-789a-4bcd-ef01-34567890abcd", + "channelId": 2, + "name": "email", + "isMandatory": false, + "resources": + [ + { + "resourceName": "customers", + "resourceIdentifier": "42", + "alias": "stasjo.van.bakel@htm.nl", + "isActive": false, + }, + ], + }, + ], + }, + ], }, - "isActive": true, - "eventTypes": - [ - { - "eventTypeId": 8, - "name": "GBO", - "subName": "PRODUCT_ACTIVATED", - "prettyName": "Product Activated", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", - "channelId": 1, - "name": "push", - "isMandatory": true, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": true, - }, - ], - }, - { - "eventTypeChannelId": "f6789abc-def0-1234-5678-90abcdef1234", - "channelId": 2, - "name": "email", - "isMandatory": false, - "resources": - [ - { - "resourceName": "customers", - "resourceIdentifier": "42", - "alias": "stasjo.van.bakel@htm.nl", - "isActive": true, - }, - ], - }, - ], - }, - { - "eventTypeId": 9, - "name": "GBO", - "subName": "PRODUCT_REFUNDED", - "prettyName": "Product Refunded", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", - "channelId": 1, - "name": "push", - "isMandatory": true, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": false, - }, - ], - }, - { - "eventTypeChannelId": "f6789abc-def0-1234-5678-90abcdef1234", - "channelId": 2, - "name": "email", - "isMandatory": false, - "resources": - [ - { - "resourceName": "customers", - "resourceIdentifier": "42", - "alias": "stasjo.van.bakel@htm.nl", - "isActive": false, - }, - ], - }, - ], - }, - ], - }, - { - "notificationSubscriptionId": "f2acafdc-0410-474f-8c8b-ba7c7b550f8e", - "customerProfileId": 42, - "ovPayToken": { - "ovPayTokenId": 113, - "alias": "Mijn OV-pas" - }, - "isActive": true, - "eventTypes": - [ - { - "eventTypeId": 8, - "name": "GBO", - "subName": "PRODUCT_ACTIVATED", - "prettyName": "Product Activated", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", - "channelId": 1, - "name": "push", - "isMandatory": true, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": true, - }, - ], - }, - { - "eventTypeChannelId": "f6789abc-def0-1234-5678-90abcdef1234", - "channelId": 2, - "name": "email", - "isMandatory": false, - "resources": - [ - { - "resourceName": "customers", - "resourceIdentifier": "42", - "alias": "stasjo.van.bakel@htm.nl", - "isActive": false, - }, - ], - }, - ], - }, - { - "eventTypeId": 9, - "name": "GBO", - "subName": "PRODUCT_REFUNDED", - "prettyName": "Product Refunded", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", - "channelId": 1, - "name": "push", - "isMandatory": true, - "resources": - [ - { - "resourceName": "devices", - "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", - "alias": "Mijn iPhone 12", - "isActive": true, - }, - { - "resourceName": "devices", - "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", - "alias": "Mijn Pixel 9 Pro", - "isActive": false, - }, - ], - }, - { - "eventTypeChannelId": "f6789abc-def0-1234-5678-90abcdef1234", - "channelId": 2, - "name": "email", - "isMandatory": false, - "resources": - [ - { - "resourceName": "customers", - "resourceIdentifier": "42", - "alias": "stasjo.van.bakel@htm.nl", - "isActive": true, - }, - ], - }, - ], - }, - ], - }, - ], - }, - { - "notificationCategoryId": 2, - "name": "Nieuwsbrief aanmelding", - "groupName": "Marketing", - "notificationSubscriptions": - [ - { - "notificationSubscriptionId": "af6305d3-f95d-42af-b22a-4181594d45dc", - "customerProfileId": 42, - "ovPayTokenId": null, - "isActive": true, - "eventTypes": - [ - { - "eventTypeId": 1, - "name": "HTM", - "subName": "NEWSLETTER", - "prettyName": "HTM Nieuwsbrief", - "eventTypeChannels": - [ - { - "eventTypeChannelId": "29cfcde2-c2f9-4548-a65e-d7789e3decc2", - "channelId": 2, - "name": "email", - "isMandatory": false, - "resources": - [ - { - "resourceName": "customers", - "resourceIdentifier": "42", - "alias": "stasjo.van.bakel@htm.nl", - "isActive": true, - }, - ], - }, - ], - }, - ], - }, - ], - }, - ], - } + ], + }, + { + "notificationCategoryId": 4, + "name": "Producten", + "groupName": "Mijn passen", + "notificationSubscriptions": + [ + { + "notificationSubscriptionId": "af6305d3-f95d-42af-b22a-4181594d45dc", + "customerProfileId": 42, + "ovPayToken": + { + "ovPayTokenId": 112, + "alias": "Mijn ING bankpas", + }, + "isActive": true, + "eventTypes": + [ + { + "eventTypeId": 8, + "name": "GBO", + "subName": "PRODUCT_ACTIVATED", + "prettyName": "Product Activated", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", + "channelId": 1, + "name": "push", + "isMandatory": true, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": true, + }, + ], + }, + { + "eventTypeChannelId": "f6789abc-def0-1234-5678-90abcdef1234", + "channelId": 2, + "name": "email", + "isMandatory": false, + "resources": + [ + { + "resourceName": "customers", + "resourceIdentifier": "42", + "alias": "stasjo.van.bakel@htm.nl", + "isActive": true, + }, + ], + }, + ], + }, + { + "eventTypeId": 9, + "name": "GBO", + "subName": "PRODUCT_REFUNDED", + "prettyName": "Product Refunded", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", + "channelId": 1, + "name": "push", + "isMandatory": true, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": false, + }, + ], + }, + { + "eventTypeChannelId": "f6789abc-def0-1234-5678-90abcdef1234", + "channelId": 2, + "name": "email", + "isMandatory": false, + "resources": + [ + { + "resourceName": "customers", + "resourceIdentifier": "42", + "alias": "stasjo.van.bakel@htm.nl", + "isActive": false, + }, + ], + }, + ], + }, + ], + }, + { + "notificationSubscriptionId": "f2acafdc-0410-474f-8c8b-ba7c7b550f8e", + "customerProfileId": 42, + "ovPayToken": + { + "ovPayTokenId": 113, + "alias": "Mijn OV-pas", + }, + "isActive": true, + "eventTypes": + [ + { + "eventTypeId": 8, + "name": "GBO", + "subName": "PRODUCT_ACTIVATED", + "prettyName": "Product Activated", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", + "channelId": 1, + "name": "push", + "isMandatory": true, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": true, + }, + ], + }, + { + "eventTypeChannelId": "f6789abc-def0-1234-5678-90abcdef1234", + "channelId": 2, + "name": "email", + "isMandatory": false, + "resources": + [ + { + "resourceName": "customers", + "resourceIdentifier": "42", + "alias": "stasjo.van.bakel@htm.nl", + "isActive": false, + }, + ], + }, + ], + }, + { + "eventTypeId": 9, + "name": "GBO", + "subName": "PRODUCT_REFUNDED", + "prettyName": "Product Refunded", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", + "channelId": 1, + "name": "push", + "isMandatory": true, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + { + "resourceName": "devices", + "resourceIdentifier": "52ad19c1-f6f7-403d-b577-df7219aa6ab4", + "alias": "Mijn Pixel 9 Pro", + "isActive": false, + }, + ], + }, + { + "eventTypeChannelId": "f6789abc-def0-1234-5678-90abcdef1234", + "channelId": 2, + "name": "email", + "isMandatory": false, + "resources": + [ + { + "resourceName": "customers", + "resourceIdentifier": "42", + "alias": "stasjo.van.bakel@htm.nl", + "isActive": true, + }, + ], + }, + ], + }, + ], + }, + ], + }, + { + "notificationCategoryId": 2, + "name": "Nieuwsbrief aanmelding", + "groupName": "Marketing", + "notificationSubscriptions": + [ + { + "notificationSubscriptionId": "af6305d3-f95d-42af-b22a-4181594d45dc", + "customerProfileId": 42, + "ovPayTokenId": null, + "isActive": true, + "eventTypes": + [ + { + "eventTypeId": 1, + "name": "HTM", + "subName": "NEWSLETTER", + "prettyName": "HTM Nieuwsbrief", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "29cfcde2-c2f9-4548-a65e-d7789e3decc2", + "channelId": 2, + "name": "email", + "isMandatory": false, + "resources": + [ + { + "resourceName": "customers", + "resourceIdentifier": "42", + "alias": "stasjo.van.bakel@htm.nl", + "isActive": true, + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + } + putSingleSubscriptionFilteredByDeviceId: + summary: Put one notification category with one subscription, which is filtered for 'Mijn iPhone 12' + value: + { + "notificationCategories": + [ + { + "notificationCategoryId": 1, + "name": "Reizen", + "groupName": "Mijn passen", + "notificationSubscriptions": + [ + { + "notificationSubscriptionId": "04ef3297-e0ff-4db6-90a4-6f0576ef4741", + "customerProfileId": 42, + "ovPayToken": + { + "ovPayTokenId": 112, + "alias": "Mijn ING bankpas", + }, + "isActive": true, + "eventTypes": + [ + { + "eventTypeId": 2, + "name": "GBO", + "subName": "CI", + "prettyName": "Normal Check-in", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "912ef811-976d-4b8d-8e39-24496335d556", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + ], + }, + ], + }, + { + "eventTypeId": 3, + "name": "GBO", + "subName": "CO", + "prettyName": "Normal Check-out", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "a1b2c3d4-e5f6-4789-abcd-1234567890ab", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + ], + }, + ], + }, + { + "eventTypeId": 3, + "name": "GBO", + "subName": "MISSING_CO", + "prettyName": "Missing Check-out", + "eventTypeChannels": + [ + { + "eventTypeChannelId": "b2c3d4e5-f678-49ab-cdef-234567890abc", + "channelId": 1, + "name": "push", + "isMandatory": false, + "resources": + [ + { + "resourceName": "devices", + "resourceIdentifier": "7b3379b8-fb12-41f5-94a8-0d3f0fbcf55b", + "alias": "Mijn iPhone 12", + "isActive": true, + }, + ], + }, + ], + }, + ], + }, + ], + }, + ], + } responses: "200": description: OK @@ -1478,10 +1696,8 @@ paths: { "notificationSubscriptionId": "8469e00a-724a-4e72-b432-fb14c939c9d3", "customerProfileId": 42, - "ovPayToken": { - "ovPayTokenId": 113, - "alias": "Mijn OV-pas" - }, + "ovPayToken": + { "ovPayTokenId": 113, "alias": "Mijn OV-pas" }, "isActive": true, "eventTypes": [ @@ -1706,10 +1922,8 @@ paths: { "notificationSubscriptionId": "f2acafdc-0410-474f-8c8b-ba7c7b550f8e", "customerProfileId": 42, - "ovPayToken": { - "ovPayTokenId": 113, - "alias": "Mijn OV-pas" - }, + "ovPayToken": + { "ovPayTokenId": 113, "alias": "Mijn OV-pas" }, "isActive": true, "eventTypes": [