UNPKG

medusa-plugin-btcpay

Version:

A plugin to receive for bitcoin payments in medusajss .

48 lines 1.83 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OPTIONS = exports.GET = void 0; const utils_1 = require("@medusajs/framework/utils"); async function fetchPaymentStatus(cartId, query) { const { data: carts } = (await query.graph({ entity: "cart", fields: ["payment_collection.*"] })); const cart = carts.find((cart) => cart.id === cartId); if (!cart) { throw new Error("Cart not found"); } return cart.payment_collection?.status; } const GET = async (req, response) => { const logger = req.scope.resolve("logger"); try { const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY); const { cart } = req.query; const paymentStatus = await fetchPaymentStatus(cart, query); const isOk = paymentStatus === utils_1.PaymentCollectionStatus.AUTHORIZED || paymentStatus === utils_1.PaymentCollectionStatus.COMPLETED; if (!isOk) { return response .status(400) .json({ error: "Payment collection not complete yet" }); } else { return response .status(200) .json({ message: "Payment collection complete" }); } } catch (error) { logger.error("Error retrieving cart:", error); return response.status(500).json({ error: "Internal server error" }); } }; exports.GET = GET; const OPTIONS = async (req, response) => { response.header("Access-Control-Allow-Origin", "*"); response.header("Access-Control-Allow-Methods", "GET, POST, OPTIONS"); response.header("Access-Control-Allow-Headers", "Content-Type, Authorization, x-publishable-api-key"); response.sendStatus(200); }; exports.OPTIONS = OPTIONS; //# sourceMappingURL=route.js.map