medusa-plugin-btcpay
Version:
A plugin to receive for bitcoin payments in medusajss .
48 lines • 1.83 kB
JavaScript
;
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