UNPKG

@unchainedshop/plugins

Version:

Official plugin collection for the Unchained Engine with payment, delivery, and pricing adapters

50 lines (49 loc) 2.15 kB
import connectCryptoToFastify from "./crypto-fastify.js"; import connectBaseToFastify from "./base-fastify.js"; import { stripeHandler } from "../payment/stripe/handler-fastify.js"; import { postfinanceCheckoutHandler } from "../payment/postfinance-checkout/handler-fastify.js"; import { datatransHandler } from "../payment/datatrans-v2/handler-fastify.js"; import { appleIAPHandler } from "../payment/apple-iap/handler-fastify.js"; import { payrexxHandler } from "../payment/payrexx/handler-fastify.js"; import { saferpayHandler } from "../payment/saferpay/handler-fastify.js"; import { configureGenerateOrderAutoscheduling } from "../worker/enrollment-order-generator.js"; const { STRIPE_WEBHOOK_PATH = '/payment/stripe', PAYREXX_WEBHOOK_PATH = '/payment/payrexx', PFCHECKOUT_WEBHOOK_PATH = '/payment/postfinance-checkout', DATATRANS_WEBHOOK_PATH = '/payment/datatrans/webhook', APPLE_IAP_WEBHOOK_PATH = '/payment/apple-iap', SAFERPAY_WEBHOOK_PATH = '/payment/saferpay/webhook', } = process.env; export default (fastify, { unchainedAPI }) => { connectBaseToFastify(fastify); connectCryptoToFastify(fastify, unchainedAPI); fastify.register((s, opts, registered) => { s.addContentTypeParser('application/json', { parseAs: 'string', bodyLimit: 1024 * 1024 }, s.defaultTextParser); s.route({ url: STRIPE_WEBHOOK_PATH, method: 'POST', handler: stripeHandler, }); s.route({ url: DATATRANS_WEBHOOK_PATH, method: 'POST', handler: datatransHandler, }); registered(); }); fastify.route({ url: PFCHECKOUT_WEBHOOK_PATH, method: 'POST', handler: postfinanceCheckoutHandler, }); fastify.route({ url: APPLE_IAP_WEBHOOK_PATH, method: 'POST', handler: appleIAPHandler, }); fastify.route({ url: PAYREXX_WEBHOOK_PATH, method: 'POST', handler: payrexxHandler, }); fastify.route({ url: SAFERPAY_WEBHOOK_PATH, method: 'GET', handler: saferpayHandler, }); configureGenerateOrderAutoscheduling(); };