features/TP-notifications #34

Merged
MirjamHTM merged 16 commits from features/TP-notifications into develop 2025-11-06 09:18:20 +00:00
Showing only changes of commit f2d8532f7f - Show all commits

View File

@ -15,31 +15,9 @@ paths:
get: get:
tags: tags:
- Notifications - Notifications
summary: Get notification categories that a person can opt in for, can also be accessed anonymously summary: Get notification categories and optins for that category that a touchpoint can show.
description: | description: |
Get notification categories that a person can opt in for, can also be accessed anonymously. If accessed anonymously, it only returns the categories for which a user does not need to have an account. Get notification categories that a touchpoint can show and optins ( eventTypes) and channels (eventType_channels) for the optin for that category
parameters:
- name: X-HTM-JWT-AUTH-HEADER
in: header
schema:
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
required: false
description: The JWT of a customer in case of touchpoint were customer logs in themselves
- name: X-HTM-CUSTOMER-PROFILE-ID-HEADER
in: header
schema:
type: string
example: feaaef83-a551-4283-8419-340b1ada3b55
required: false
description: The customerProfileId of a customer in the case of the SMP
- name: X-HTM-ROLE-HEADER
in: header
schema:
type: string
example: Customer
required: false
description: The role of the HTM employee in the case of the SMP
responses: responses:
"200": "200":
description: OK description: OK
@ -47,7 +25,7 @@ paths:
application/json: application/json:
examples: examples:
getNotifactionCategoriesWithAccount: getNotifactionCategoriesWithAccount:
summary: Return all the notification categories when the user has an account summary: Return all the notification categories
value: value:
{ {
"notificationCategories":[ "notificationCategories":[
Review

Klopt het dat dit een array is? Kun je meerdere kiezen?

Ik dacht, is een enum niet mooier?

        - name: expand
          in: query
          schema: 
            type: string
            enum: [none, eventType, eventTypeChannel]
Klopt het dat dit een array is? Kun je meerdere kiezen? Ik dacht, is een enum niet mooier? ``` - name: expand in: query schema: type: string enum: [none, eventType, eventTypeChannel] ```
Review

Done

Done
@ -86,7 +64,7 @@ paths:
"optinRequired": False, "optinRequired": False,
"eventTypes": [ "eventTypes": [
{ {
"eventTypeId": 1, "eventTypeId": 2,
"eventOrigin": { "eventOrigin": {
"eventOriginId": 1, "eventOriginId": 1,
"name": "GBO" "name": "GBO"
@ -117,7 +95,7 @@ paths:
] ]
}, },
{ {
"eventTypeId": 2, "eventTypeId": 3,
"eventOrigin": { "eventOrigin": {
"eventOriginId": 1, "eventOriginId": 1,
"name": "GBO" "name": "GBO"
@ -155,6 +133,7 @@ paths:
"optinRequired": False, "optinRequired": False,
"eventTypes": [ "eventTypes": [
{ {
"eventTypeId": 4,
"eventOrigin": { "eventOrigin": {
"eventOriginId": 1, "eventOriginId": 1,
"name": "GBO" "name": "GBO"
@ -185,6 +164,7 @@ paths:
] ]
}, },
{ {
"eventTypeId": 5,
"eventOrigin": { "eventOrigin": {
"eventOriginId": 1, "eventOriginId": 1,
"name": "GBO" "name": "GBO"
@ -271,9 +251,9 @@ paths:
get: get:
tags: tags:
- Notifications - Notifications
summary: Get a notificationSubscription for a customer (account or private). summary: Get all possible notificationSubscriptions for a customer (account or private).
description: | description: |
Get a notificationSubscription for a customer (account or private). Get all possible notificationSubscriptions for a customer (account or private), including if they have opted-in for it.
parameters: parameters:
- name: X-HTM-JWT-AUTH-HEADER - name: X-HTM-JWT-AUTH-HEADER
in: header in: header
@ -304,16 +284,238 @@ paths:
example: john.doe@mymailprovider.com example: john.doe@mymailprovider.com
required: false required: false
description: The emailadress of the customer in the case of anonymous opt-ins description: The emailadress of the customer in the case of anonymous opt-ins
- name: nested
in: query
schema:
type: boolean
default: true
required: false
description: Return subscriptions nested, so it is presentation ready for touchpoint (default), if false only return the notificationSubcriptions as a flat list
responses: responses:
"200": "200":
description: OK description: OK
content: content:
application/json: application/json:
examples: examples:
getNotifactionSubscriptionsWithAccount: getNotifactionSubscriptionsWithAccountNestedTrue:
summary: Return all the notification subscriptions when the user is logged in with an account/ identified by SMP summary: Return all the notification subscriptions when the user is logged in with an account/ identified by SMP
value: value:
{ {
"customer":{
"emailAddress": "j.jansen@mymailprovider.nl",
"isEmailVerified": True
},
"notificationCategory":[
{
"notificationCategoryId": 1,
"status": "on",
"eventTypes":[
{
"eventTypeId": 1,
"status": "on",
"eventTypeChannels":[
{
MirjamHTM marked this conversation as resolved
Review
https://htm-prod.atlassian.net/browse/OVPAY-1499
"eventTypeChannelId": "447a1116-6cd7-4645-8c3d-43237b6186cd",
"notificationSubscriptions":[
{
"notificationSubscriptionId":"",
"ovpayToken": null,
"isActive": True
}
]
}
]
}
]
},
Review

Klopt het dat alle params niet verplicht zijn?

Klopt het dat alle params niet verplicht zijn?
Review

Ja dat klopt, is afhankelijk of een gebruiker ingelogd is via Web of SMP of anoniem opt in op vraagt.

Ja dat klopt, is afhankelijk of een gebruiker ingelogd is via Web of SMP of anoniem opt in op vraagt.
{
"notificationCategoryId": 2,
"status": "off",
"eventTypes":[
{
"eventTypeId": 2,
"status": "off",
"eventTypeChannels":[
{
"eventTypeChannelId": "ccc8c025-06b5-4928-a632-23e1c55cd173",
"notificationSubscriptions":[
{
"notificationSubscriptionId":"",
"ovpayToken":{
"ovPayTokenId": 134,
"alias": "Mijn Rabopas"
},
"isActive": False
},
{
"notificationSubscriptionId":"",
"ovpayToken": {
"ovPayTokenId": 138,
"alias": "Mijn ING pas"
},
"isActive": False
}
]
},
{
"eventTypeChannelId": "da2deb4c-ce77-4b5f-aecc-ddebfd14349d",
"notificationSubscriptions":[
{
"notificationSubscriptionId":"",
"ovpayToken":{
"ovPayTokenId": 134,
"alias": "Mijn Rabopas"
},
"isActive": False
},
{
"notificationSubscriptionId":"",
"ovpayToken": {
"ovPayTokenId": 138,
"alias": "Mijn ING pas"
},
"isActive": False
}
]
}
]
},
{
"eventTypeId": 3,
"status": "off",
"eventTypeChannels":[
{
"eventTypeChannelId": "8e7df8f1-7e50-482f-8301-d399e75fd432",
"notificationSubscriptions":[
{
"notificationSubscriptionId":"",
"ovpayTokenId": 136,
"isActive": False
},
{
"notificationSubscriptionId":"",
"ovpayTokenId": 138,
"isActive": False
}
]
},
{
"eventTypeChannelId": "72960a92-1855-469f-9cfd-5d72f57106f2",
"notificationSubscriptions":[
{
"notificationSubscriptionId":"",
"ovpayTokenId": 136,
"isActive": False
},
{
"notificationSubscriptionId":"",
"ovpayTokenId": 138,
"isActive": False
}
]
}
]
}
]
},
{
"notificationCategoryId": 3,
"status": "partial",
"eventTypes":[
{
MirjamHTM marked this conversation as resolved
Review
https://htm-prod.atlassian.net/browse/OVPAY-1499
"eventTypeId": 4,
"status": "on",
"eventTypeChannels":[
{
"eventTypeChannelId": "ccc8c025-06b5-4928-a632-23e1c55cd173",
"notificationSubscriptions":[
{
"notificationSubscriptionId":"",
"ovpayToken":{
"ovPayTokenId": 134,
"alias": "Mijn Rabopas"
},
"isActive": True
},
{
"notificationSubscriptionId":"",
"ovpayToken": {
"ovPayTokenId": 138,
"alias": "Mijn ING pas"
},
"isActive": False
}
]
},
{
"eventTypeChannelId": "da2deb4c-ce77-4b5f-aecc-ddebfd14349d",
"notificationSubscriptions":[
{
"notificationSubscriptionId":"",
"ovpayToken":{
"ovPayTokenId": 134,
"alias": "Mijn Rabopas"
},
"isActive": False
},
{
"notificationSubscriptionId":"",
"ovpayToken": {
"ovPayTokenId": 138,
"alias": "Mijn ING pas"
},
"isActive": False
}
]
}
]
},
{
"eventTypeId": 5,
"status": "off",
"eventTypeChannels":[
{
"eventTypeChannelId": "8e7df8f1-7e50-482f-8301-d399e75fd432",
"notificationSubscriptions":[
{
"notificationSubscriptionId":"",
"ovpayTokenId": 136,
"isActive": False
},
{
"notificationSubscriptionId":"",
"ovpayTokenId": 138,
"isActive": False
}
]
},
{
"eventTypeChannelId": "72960a92-1855-469f-9cfd-5d72f57106f2",
"notificationSubscriptions":[
{
"notificationSubscriptionId":"",
"ovpayTokenId": 136,
"isActive": False
},
{
"notificationSubscriptionId":"",
"ovpayTokenId": 138,
"isActive": False
}
]
}
]
}
]
}
]
}
getNotifactionSubscriptionsWithAccountNestedFalse:
summary: Return all the notification subscriptions when the user is logged in with an account/ identified by SMP
value:
{
"notificationSubscriptions":[ "notificationSubscriptions":[
{ {
"notificationSubscriptionId": "e112f26e-37fa-4bde-8def-9977cd1d50ae", "notificationSubscriptionId": "e112f26e-37fa-4bde-8def-9977cd1d50ae",
@ -341,6 +543,21 @@ paths:
}, },
"isActive": True "isActive": True
}, },
{
"notificationSubscriptionId": "17e87b99-014f-491f-87db-39b92ffd2b1d",
"notificationCategoryId": 3,
"eventTypeChannelId": "be07c7bb-714b-4637-acf5-a67025ad8e60",
"customer":{
"emailAddress": "j.jansen@mymailprovider.nl",
"isEmailVerified": True
},
"ovpayToken":
{
"ovPayTokenId": 134,
"alias": "Mijn Rabopas"
},
"isActive": True
},
{ {
"notificationSubscriptionId": "17e87b99-014f-491f-87db-39b92ffd2b1d", "notificationSubscriptionId": "17e87b99-014f-491f-87db-39b92ffd2b1d",
MirjamHTM marked this conversation as resolved
Review
https://htm-prod.atlassian.net/browse/OVPAY-1499
"notificationCategoryId": 3, "notificationCategoryId": 3,
@ -359,25 +576,6 @@ paths:
} }
] ]
} }
getNotifactionSubscriptionsWithoutAccount:
summary: Return all the notification subscriptions when the user is anoymous
value:
{
"notificationSubscriptions":[
{
"notificationSubscriptionId": "e112f26e-37fa-4bde-8def-9977cd1d50ae",
"notificationCategoryId": 1,
"eventTypeChannelId": "447a1116-6cd7-4645-8c3d-43237b6186cd",
"customer":{
"emailAddress": "j.jansen@mymailprovider.nl",
"isEmailVerified": False
},
"ovpayTokenId": null,
"isActive": True
}
]
}
"404": "404":
description: No notification subscriptions found description: No notification subscriptions found
content: content:
@ -391,122 +589,6 @@ paths:
"instance": "555d00b5-bc3f-4591-949b-479e76d49ea7", "instance": "555d00b5-bc3f-4591-949b-479e76d49ea7",
"errors": [{ "subApiErrorCode": "0017" }], "errors": [{ "subApiErrorCode": "0017" }],
} }
post:
tags:
- Notifications
summary: Create a new notificationSubscription for a customer (account or private).
description: |
Create a new notificationSubscription for a customer (account or private).
parameters:
- name: X-HTM-JWT-AUTH-HEADER
in: header
schema:
type: string
example: eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c
required: false
description: The JWT of a customer in case of touchpoint were customer logs in themselves
- name: X-HTM-CUSTOMER-PROFILE-ID-HEADER
in: header
schema:
type: string
example: feaaef83-a551-4283-8419-340b1ada3b55
required: false
description: The customerProfileId of a customer in the case of the SMP
- name: X-HTM-ROLE-HEADER
in: header
schema:
type: string
example: Customer
required: false
description: The role of the HTM employee in the case of the SMP
requestBody:
content:
application/json:
schema:
$ref: "#/components/schemas/unavailable"
examples:
Add a new notificationSubscription for a customer with account:
value:
{
"notificationCategoryId": 1,
"eventTypeChannelId": "447a1116-6cd7-4645-8c3d-43237b6186cd",
"emailAddress": null,
"ovpayTokenId": null,
"isActive": True
}
Add a new token notificationSubscription for a customer with account:
value:
{
"notificationCategoryId": 3,
"eventTypeChannelId": "447a1116-6cd7-4645-8c3d-43237b6186cd",
"emailAddress": null,
"ovpayTokenId": 135,
"isActive": True
}
Add a new notificationSubscription for a customer without account:
value:
{
"notificationCategoryId": 1,
"eventTypeChannelId": "447a1116-6cd7-4645-8c3d-43237b6186cd",
"emailAddress": "j.jansen@mymailprovider.nl",
"ovpayTokenId": null,
"isActive": True
}
responses:
"201":
description: Created
content:
application/json:
examples:
Add a new notificationSubscription for a customer with account:
summary: Return all the notification subscriptions when the user is logged in with an account/ identified by SMP
value:
{
"notificationSubscriptions":[
{
"notificationSubscriptionId": "e112f26e-37fa-4bde-8def-9977cd1d50ae",
"notificationCategoryId": 1,
"eventTypeChannelId": "447a1116-6cd7-4645-8c3d-43237b6186cd",
"customer":{
"emailAddress": "j.jansen@mymailprovider.nl",
"isEmailVerified": True
},
"ovpayTokenId": null,
"isActive": True
},
{
"notificationSubscriptionId": "17e87b99-014f-491f-87db-39b92ffd2b1d",
"notificationCategoryId": 3,
"eventTypeChannelId": "be07c7bb-714b-4637-acf5-a67025ad8e60",
"customer":{
"emailAddress": "j.jansen@mymailprovider.nl",
"isEmailVerified": True
},
"ovpayToken":
{
"ovPayTokenId": 134,
"alias": "Mijn Rabopas"
},
"isActive": True
},
{
"notificationSubscriptionId": "17e87b99-014f-491f-87db-39b92ffd2b1d",
"notificationCategoryId": 3,
"eventTypeChannelId": "be07c7bb-714b-4637-acf5-a67025ad8e60",
"customer":{
"emailAddress": "j.jansen@mymailprovider.nl",
"isEmailVerified": True
},
"ovpayTokenId": 101,
"ovpayToken":
{
"ovPayTokenId": 101,
"alias": "Mijn ING pas"
},
"isActive": False
}
]
}
/notificationsubscriptions/{notificationSubscriptionId}: /notificationsubscriptions/{notificationSubscriptionId}:
patch: patch:
tags: tags:
@ -570,8 +652,8 @@ paths:
} }
responses: responses:
"201": "200":
description: Created description: OK
content: content:
application/json: application/json:
examples: examples: