From 92910c749cd7cc8c8c2f7079d0a3626e2d8a61c3 Mon Sep 17 00:00:00 2001 From: Alessandro Izzo Date: Fri, 21 Jun 2024 14:29:33 +0200 Subject: [PATCH] chore: [IOBP-694] Add platform session token generation (#388) * chore: Add platform session token generation * chore: Add platform session token request response 201 * chore: changed name of return token * chore: Add generic custom token to follow the definitions regex * chore: Prettify * chore: Updated openapi definitions * chore: Add platform-session base path * chore: changed platform pagopa session token definitions version * chore: deifnitions upgrade * chore: changed biz-events baseurl * chore: updated tag version * chore: update definitions --- package.json | 10 ++++++---- src/features/payments/routers/index.ts | 1 + src/features/payments/routers/payment.ts | 5 ----- src/features/payments/routers/platform.ts | 7 +++++++ src/features/payments/routers/router.ts | 11 ++++++++++- src/features/payments/utils/platform.ts | 2 ++ 6 files changed, 26 insertions(+), 10 deletions(-) create mode 100644 src/features/payments/routers/platform.ts create mode 100644 src/features/payments/utils/platform.ts diff --git a/package.json b/package.json index 6f870f7c..acd04b76 100644 --- a/package.json +++ b/package.json @@ -20,9 +20,10 @@ "api_pn": "https://raw.githubusercontent.com/pagopa/io-backend/v13.39.1-RELEASE/api_pn.yaml", "api_idpay": "https://raw.githubusercontent.com/pagopa/cstar-infrastructure/v6.5.0/src/domains/idpay-app/api/idpay_appio_full/openapi.appio.full.yml", "api_fast_login": "https://raw.githubusercontent.com/pagopa/io-backend/v13.39.1-RELEASE/openapi/generated/api_fast_login.yaml", - "api_pagopa_walletv3": "https://raw.githubusercontent.com/pagopa/pagopa-infra/v1.35.1/src/domains/wallet-app/api/payment-wallet/v1/_openapi.json.tpl", - "api_pagopa_ecommerce": "https://raw.githubusercontent.com/pagopa/pagopa-infra/v1.35.1/src/domains/ecommerce-app/api/ecommerce-io/v1/_openapi.json.tpl", - "api_pagopa_biz_events": "https://raw.githubusercontent.com/pagopa/pagopa-infra/0a6784276fd43aaff7709dd90e0d379e77326f28/src/domains/bizevents-app/api/transaction-service/v1/_openapi-jwt.json.tpl", + "api_pagopa_walletv3": "https://raw.githubusercontent.com/pagopa/pagopa-infra/v1.64.0/src/domains/pay-wallet-app/api/io-payment-wallet/v1/_openapi.json.tpl", + "api_pagopa_ecommerce": "https://raw.githubusercontent.com/pagopa/pagopa-infra/v1.64.0/src/domains/ecommerce-app/api/ecommerce-io/v2/_openapi.json.tpl", + "api_pagopa_biz_events": "https://raw.githubusercontent.com/pagopa/pagopa-biz-events-service/0.1.37/openapi/openapi_io_patch.json", + "api_pagopa_platform": "https://raw.githubusercontent.com/pagopa/pagopa-infra/v1.64.0/src/domains/shared-app/api/session-wallet/v1/_openapi.json.tpl", "api_services": "https://raw.githubusercontent.com/pagopa/io-backend/master/api_services_app_backend.yaml", "author": "Matteo Boschi", "license": "MIT", @@ -47,6 +48,7 @@ "generate:pagopa-walletv3-definitions": "rimraf generated/definitions/pagopa/walletv3 && mkdir -p generated/definitions/pagopa/walletv3 && gen-api-models --api-spec $npm_package_api_pagopa_walletv3 --out-dir ./generated/definitions/pagopa/walletv3", "generate:pagopa-ecommerce-definitions": "rimraf generated/definitions/pagopa/ecommerce && mkdir -p generated/definitions/pagopa/ecommerce && gen-api-models --api-spec $npm_package_api_pagopa_ecommerce --out-dir ./generated/definitions/pagopa/ecommerce", "generate:pagopa-transactions-definitions": "rimraf generated/definitions/pagopa/transactions && mkdir -p generated/definitions/pagopa/transactions && gen-api-models --api-spec $npm_package_api_pagopa_biz_events --out-dir ./generated/definitions/pagopa/transactions", + "generate:pagopa-platform-definitions": "rimraf generated/definitions/pagopa/platform && mkdir -p generated/definitions/pagopa/platform && gen-api-models --api-spec $npm_package_api_pagopa_platform --out-dir ./generated/definitions/pagopa/platform", "generate:pagopa-api": "rimraf generated/definitions/pagopa && mkdir -p generated/definitions/pagopa && gen-api-models --api-spec $npm_package_api_pagopa --out-dir ./generated/definitions/pagopa", "generate:cgn-definitions": "rimraf generated/definitions/cgn && mkdir -p generated/definitions/cgn && gen-api-models --api-spec $npm_package_api_cgn --out-dir ./generated/definitions/cgn ", "generate:cgn-merchants-definitions": "rimraf generated/definitions/cgn/merchants && mkdir -p generated/definitions/cgn/merchants && gen-api-models --api-spec $npm_package_api_cgn_merchants --out-dir ./generated/definitions/cgn/merchants ", @@ -57,7 +59,7 @@ "generate:pn-definitions": "rimraf generated/definitions/pn && mkdir -p generated/definitions/pn && gen-api-models --api-spec $npm_package_api_pn --out-dir ./generated/definitions/pn --no-strict --request-types --response-decoders", "generate:idpay-definitions": "rimraf generated/definitions/idpay && mkdir -p generated/definitions/idpay && gen-api-models --api-spec $npm_package_api_idpay --out-dir ./generated/definitions/idpay --no-strict", "generate:fast-login-definitions": "rimraf generated/definitions/fast_login && mkdir -p generated/definitions/fast_login && gen-api-models --api-spec $npm_package_api_fast_login --out-dir ./generated/definitions/fast_login --no-strict --request-types --response-decoders", - "generate:pagopa": "npm-run-all generate:pagopa-walletv2-definitions generate:pagopa-privative-configuration-definitions generate:pagopa-cobadge-configuration-definitions generate:pagopa-walletv3-definitions generate:pagopa-ecommerce-definitions generate:pagopa-transactions-definitions", + "generate:pagopa": "npm-run-all generate:pagopa-walletv2-definitions generate:pagopa-privative-configuration-definitions generate:pagopa-cobadge-configuration-definitions generate:pagopa-walletv3-definitions generate:pagopa-ecommerce-definitions generate:pagopa-transactions-definitions generate:pagopa-platform-definitions", "generate:services-definitions": "rimraf generated/definitions/services && mkdir -p generated/definitions/services && gen-api-models --api-spec $npm_package_api_services --out-dir ./generated/definitions/services --no-strict", "generate": "npm-run-all generate:*" }, diff --git a/src/features/payments/routers/index.ts b/src/features/payments/routers/index.ts index fbb8b4e4..35e032e9 100644 --- a/src/features/payments/routers/index.ts +++ b/src/features/payments/routers/index.ts @@ -1,5 +1,6 @@ import "./payment"; import "./wallets"; import "./transactions"; +import "./platform"; export { walletRouter } from "./router"; diff --git a/src/features/payments/routers/payment.ts b/src/features/payments/routers/payment.ts index f45968dd..8f76a6d0 100644 --- a/src/features/payments/routers/payment.ts +++ b/src/features/payments/routers/payment.ts @@ -26,11 +26,6 @@ import { generateOnboardablePaymentMethods } from "../utils/onboarding"; import { WALLET_PAYMENT_PATH } from "../utils/payment"; import { addPaymentHandler } from "./router"; -// eCommerce session token -addPaymentHandler("post", "/sessions", (req, res) => - res.status(200).json({ sessionToken: ulid() }) -); - // Verify single payment notices addPaymentHandler("get", "/payment-requests/:rpt_id", (req, res) => pipe( diff --git a/src/features/payments/routers/platform.ts b/src/features/payments/routers/platform.ts new file mode 100644 index 00000000..054bfa66 --- /dev/null +++ b/src/features/payments/routers/platform.ts @@ -0,0 +1,7 @@ +import { PAGOPA_PLATFORM_SESSION_TOKEN } from "../utils/platform"; +import { addPlatformHandler } from "./router"; + +// Generates a new pagoPA platform session token +addPlatformHandler("post", "/session", (_, res) => + res.status(201).json({ token: PAGOPA_PLATFORM_SESSION_TOKEN }) +); diff --git a/src/features/payments/routers/router.ts b/src/features/payments/routers/router.ts index 7d9288d0..e3c22f38 100644 --- a/src/features/payments/routers/router.ts +++ b/src/features/payments/routers/router.ts @@ -5,7 +5,8 @@ export const walletRouter = Router(); export const PAYMENT_WALLET_PREFIX = "/payment-wallet/v1"; export const ECOMMERCE_PREFIX = "/ecommerce/io/v1"; -export const TRANSACTIONS_PREFIX = "/bizevents/bizevents/tx-service-jwt/v1"; +export const TRANSACTIONS_PREFIX = "/bizevents/tx-service-jwt/v1"; +export const PLATFORM_PREFIX = "/session-wallet/v1"; export const addPaymentWalletPrefix = (path: string) => `${PAYMENT_WALLET_PREFIX}${path}`; @@ -16,6 +17,8 @@ export const addECommercePrefix = (path: string) => export const addTransactionPrefix = (path: string) => `${TRANSACTIONS_PREFIX}${path}`; +export const addPlatformPrefix = (path: string) => `${PLATFORM_PREFIX}${path}`; + export const addPaymentWalletHandler = ( method: SupportedMethod, path: string, @@ -35,3 +38,9 @@ export const addTransactionHandler = ( handleRequest: (request: Request, response: Response) => void ) => addHandler(walletRouter, method, addTransactionPrefix(path), handleRequest); + +export const addPlatformHandler = ( + method: SupportedMethod, + path: string, + handleRequest: (request: Request, response: Response) => void +) => addHandler(walletRouter, method, addPlatformPrefix(path), handleRequest); diff --git a/src/features/payments/utils/platform.ts b/src/features/payments/utils/platform.ts new file mode 100644 index 00000000..9e245eb2 --- /dev/null +++ b/src/features/payments/utils/platform.ts @@ -0,0 +1,2 @@ +export const PAGOPA_PLATFORM_SESSION_TOKEN = + "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJncm91cCI6ImFuZHJvaWQiLCJhdWQiOiJhbmRyb2lkIiwiaXNzIjoiYXBpLnNvY2lhbGRlYWwubmwiLCJtZW1iZXIiOnsibmFtZSI6ImVyaWsifSwiZXhwIjoxNDUyMDgzMjA3LCJpYXQiOjE0NTE5OTY4MDd9.u7ZBa9RB8U4QL8eBk4hmsjg8oFW19AHuen12c8CvLMj0IQUsNqeC-vwNQvAINpgBM0bzDf5cotyrUzf55eXch6mzfKMa-OJXguO-lARp4fc40HaBWbfnEvGe7yEgSESkt6gJNuprG51A6f4AJyNlXG_3u7O4bAMwiPZJc3AAU84_JXC7Vlq1X3FMaLVGmZdxzA4TvYZEiTt_KHoA49UgzeZtNXo3YiDq-GgL1eV8Li01fwy-M--xzbp4cPcY89jkPyYxUIJEoITOULr3zXQwRfYVe6i0P28oyu5ZzAwYCajBb2T98zN7sFJarNmtcxSKNfhCPnMVn3wrpxx4_Kd2Pw";