From 9fd0a14e91a34e023425af82a01d654b8e0b6aea Mon Sep 17 00:00:00 2001 From: Max Martens Date: Wed, 7 May 2025 11:31:04 +0200 Subject: [PATCH 1/3] Fix PUTGenerator --- .../nl/htm/ovpay/abt/ABTProductsPUTGenerator.java | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/java/ABTProductsPUTGenerator/src/main/java/nl/htm/ovpay/abt/ABTProductsPUTGenerator.java b/src/java/ABTProductsPUTGenerator/src/main/java/nl/htm/ovpay/abt/ABTProductsPUTGenerator.java index 3246d16..69426ac 100644 --- a/src/java/ABTProductsPUTGenerator/src/main/java/nl/htm/ovpay/abt/ABTProductsPUTGenerator.java +++ b/src/java/ABTProductsPUTGenerator/src/main/java/nl/htm/ovpay/abt/ABTProductsPUTGenerator.java @@ -100,8 +100,8 @@ public class ABTProductsPUTGenerator { ((ObjectNode)newJsonNode).putRawValue("customerSegmentIds", null); } case "allowedGboAgeProfiles" -> { - LOGGER.info("Rewriting null allowedGboAgeProfiles to allowedGboAgeProfilesIds..."); - ((ObjectNode)newJsonNode).putRawValue("allowedGboAgeProfilesIds", null); + LOGGER.info("Rewriting null allowedGboAgeProfiles to allowedGboAgeProfileIds..."); + ((ObjectNode)newJsonNode).putRawValue("allowedGboAgeProfileIds", null); } case "mandatoryCustomerDataItems" -> { LOGGER.info("Rewriting null mandatoryCustomerDataItems to mandatoryCustomerDataItemIds..."); @@ -283,7 +283,8 @@ public class ABTProductsPUTGenerator { ((ObjectNode)sellingPeriod).putRawValue("forbiddenPaymentMethodIds", null); } } - if (sellingPeriod.get("sellingPrices") != null) { + if (!sellingPeriod.get("sellingPrices").isNull()) { + LOGGER.info("Deep-copying sellingPrices..."); ArrayNode sellingPrices = ((ArrayNode)sellingPeriod.get("sellingPrices")).deepCopy(); ((ObjectNode)sellingPeriod).remove("sellingPrices"); if (!sellingPrices.isEmpty()) { @@ -299,8 +300,8 @@ public class ABTProductsPUTGenerator { } } case "purchasePrices" -> { - LOGGER.info("Rewriting taxMetadata in purchasePrices to taxMetadataId..."); - if (jsonField.getValue() != null) { + LOGGER.info("Deep-copying purchasePrices..."); + if (!jsonField.getValue().isNull()) { ArrayNode purchasePrices = ((ArrayNode)jsonField.getValue()).deepCopy(); ((ObjectNode)newJsonNode).putArray("purchasePrices").addAll(purchasePrices); } else { From 3819ee006f023900e0a35a485faa6f3171eee322 Mon Sep 17 00:00:00 2001 From: Max Martens Date: Thu, 8 May 2025 13:29:54 +0200 Subject: [PATCH 2/3] Update binary --- .../bin/ABTProductsPUTGenerator.jar | Bin 4551198 -> 4551594 bytes .../ABTProductsPUTGenerator/bin/input.json | 122 +++++++++--------- .../ABTProductsPUTGenerator/bin/output.json | 65 +++++----- 3 files changed, 97 insertions(+), 90 deletions(-) diff --git a/src/java/ABTProductsPUTGenerator/bin/ABTProductsPUTGenerator.jar b/src/java/ABTProductsPUTGenerator/bin/ABTProductsPUTGenerator.jar index 2a3b03c3c728d703182a2fad1e7cbc65cc92b75b..eb23d377a3cced193a6daa9a28449688ed9e1d04 100644 GIT binary patch delta 9377 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 delta 8956 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 u|KGO=8Cwzif3HV+vR7}~jiCqy%2JY Date: Thu, 8 May 2025 19:04:38 +0200 Subject: [PATCH 3/3] Add 1211 to PADP Swagger; token compare/replace is added to SE-customers in OVPAY-1742 feature branch and PR --- src/openapi/apim/TP-PAD.yaml | 187 ++++++++++++++++++++++++++++++++++- 1 file changed, 185 insertions(+), 2 deletions(-) diff --git a/src/openapi/apim/TP-PAD.yaml b/src/openapi/apim/TP-PAD.yaml index fe2ae98..5c522d7 100644 --- a/src/openapi/apim/TP-PAD.yaml +++ b/src/openapi/apim/TP-PAD.yaml @@ -1,8 +1,8 @@ openapi: 3.0.1 info: - title: Personal Account Data (PAD) APIs for touchpoints + title: Personal Account Data (PAD) APIs for touchpoints and Service Engine description: |- - APIs for touchpoints to manage Personal Account Data (PAD) on OVpay tokens (xTATs).\ + APIs for touchpoints and Service Engine to manage Personal Account Data (PAD) on OVpay tokens (xTATs).\ These APIs connect directly to the PADP APIs in GBO APIM and are implemented in Logic Apps in the Integration Layer. version: '1.0' @@ -11,6 +11,8 @@ servers: tags: - name: Personal Data APIs for touchpoints description: Personal Data APIs for touchpoints, no Service Engine in between! + - name: Personal Data APIs for Service Engine + description: Personal Data APIs for Service Engine, not to be exposed to touchpoints! paths: /personal-data/{xtat}: post: @@ -230,8 +232,189 @@ paths: application/json: schema: $ref: '#/components/schemas/ErrorResponse' + /personal-data/{xtat}/administrative-data: + get: + tags: + - Personal Data APIs for Service Engine + summary: API 1211 - Get Administrative Data + description: Integration Layer utilizes PAD management V2 in GBO APIM (`/pad-management/v2/..`) + operationId: GetAdministrativeData + parameters: + - name: xtat + description: xTAT to get administrative data for + in: path + required: true + schema: + type: string + format: uuid + example: 'c3a6c0f2-3b6a-4b9a-9c5d-5d9c6b3a4c5d' + responses: + "200": + description: OK + content: + application/json: + schema: + $ref: "#/components/schemas/AdministrativeData" + examples: + Valid and complete PAD: + summary: Valid and complete PAD + value: + name: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 1 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + photo: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 5 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + birthdate: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 3 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + Partially filled PAD (no photo): + summary: Partially filled PAD (no photo) + value: + name: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 1 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + photo: null + birthdate: + inaccuracyFlag: false + inaccuracyFlagReason: null + inaccuracyFlagCounter: 0 + changeCounter: 0 + maxUpdatesVerificationCount: 3 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + Flagged PAD: + summary: Flagged PAD + value: + name: + inaccuracyFlag: true + inaccuracyFlagReason: "Invalid name" + inaccuracyFlagCounter: 1 + changeCounter: 1 + maxUpdatesVerificationCount: 1 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + photo: + inaccuracyFlag: true + inaccuracyFlagReason: "Invalid photo" + inaccuracyFlagCounter: 1 + changeCounter: 0 + maxUpdatesVerificationCount: 5 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + birthdate: + inaccuracyFlag: true + inaccuracyFlagReason: "Invalid birthdate" + inaccuracyFlagCounter: 1 + changeCounter: 2 + maxUpdatesVerificationCount: 3 + lastChangeDate: "2025-03-26T10:18:42.947" + isValidated: false + "400": + description: Bad Request + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + Invalid UUID: + summary: Invalid UUID + value: + errors: + code: "0x03000103" + data: [ + "geen-uuid" + ] + message: "The provided scTat is not a valid UUID" + exceptionClassName: "PadpConstraintViolationException" + exceptionStackTrace: "not available because debug mode is turned off" + "404": + description: Not Found + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + No PAD found for xTAT: + summary: No PAD found for xTAT + value: + errors: + code: "0x03000105" + data: [] + message: "Transit account not found" + exceptionClassName: "PadpEntityNotFoundException" + exceptionStackTrace: "not available because debug mode is turned off" + "500": + description: Internal Server Error + content: + application/json: + schema: + $ref: "#/components/schemas/ErrorResponse" + examples: + Unknown xTAT: + summary: Unknown xTAT + value: + errors: + code: "0x00000001" + data: null + message: "400 : \"{\"errorMessage\":{\"referenceId\":\"076f0de4-df33-42a3-add0-def971ab6679\",\"message\":\"Unknown external transit account token.\"},\"businessExceptions\":[{\"code\":\"TM0207\",\"message\":\"Unknown external transit account token.\"}]}\"" + exceptionClassName: "BadRequest" + exceptionStackTrace: "not available because debug mode is turned off" components: schemas: + AdministrativeData: + type: object + properties: + name: + $ref: '#/components/schemas/AdministrativeDataElement' + photo: + $ref: '#/components/schemas/AdministrativeDataElement' + birthdate: + $ref: '#/components/schemas/AdministrativeDataElement' + additionalProperties: false + AdministrativeDataElement: + type: object + properties: + inaccuracyFlag: + type: boolean + inaccuracyFlagReason: + type: string + nullable: true + inaccuracyFlagCounter: + type: integer + format: int32 + changeCounter: + type: integer + format: int32 + maxUpdatesVerificationCount: + type: integer + format: int32 + lastChangeDate: + type: string + format: date-time + isValidated: + type: boolean + additionalProperties: false DecryptedData: type: object properties: