medusa-bonuses-plugin
Version:
medusa-bonuses-plugin is a Medusa plugin that adds bonus program to Medusa ecommerce stores.
73 lines • 5.11 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.POST = void 0;
class ApplyBonusesToCartRequest {
}
class ApplyBonusesToCartResponse {
}
// Применение бонусов к текущей корзине
const POST = async (req, res) => {
var _a;
const bonusService = req.scope.resolve("bonusService");
const cartService = req.scope.resolve("cartService");
const customer_id = (_a = req.user) === null || _a === void 0 ? void 0 : _a.customer_id;
if (!customer_id) {
res.status(401).json({ message: "Unauthorized" });
return;
}
const { amount, cart_id } = req.body;
if (!cart_id) {
res.status(400).json({ message: "Cart ID is required" });
return;
}
// Проверяем, что корзина принадлежит пользователю
const cart = await cartService.retrieve(cart_id);
if (cart.customer_id !== customer_id) {
res.status(403).json({ message: "Access denied" });
return;
}
const result = await bonusService.applyBonusToCart(customer_id, cart_id, amount);
res.json(result);
};
exports.POST = POST;
// export default (router: Router) => {
// Получение информации о бонусном счете пользователя
// router.get("/store/customers/me/bonus", wrapHandler(async (req, res) => {
// const bonusService = req.scope.resolve("bonusService")
// // Проверяем авторизацию
// const customer_id = req.user?.customer_id
// if (!customer_id) {
// res.status(401).json({ message: "Unauthorized" })
// return
// }
// const bonusAccount = await bonusService.getBonusAccount(customer_id)
// res.json({
// balance: bonusAccount.balance,
// transactions: await bonusService.getTransactionHistory(customer_id)
// })
// }))
// Применение бонусов к текущей корзине
// router.post("/store/customers/me/bonus/apply", wrapHandler(async (req, res) => {
// const bonusService = req.scope.resolve("bonusService")
// const cartService = req.scope.resolve("cartService")
// const customer_id = req.user?.customer_id
// if (!customer_id) {
// res.status(401).json({ message: "Unauthorized" })
// return
// }
// const { amount, cart_id } = req.body
// if (!cart_id) {
// res.status(400).json({ message: "Cart ID is required" })
// return
// }
// // Проверяем, что корзина принадлежит пользователю
// const cart = await cartService.retrieve(cart_id)
// if (cart.customer_id !== customer_id) {
// res.status(403).json({ message: "Access denied" })
// return
// }
// const result = await bonusService.applyBonusToCart(customer_id, cart_id, amount)
// res.json(result)
// }))
//}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2N1c3RvbWVycy9tZS9ib251cy9hcHBseS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFhQSxNQUFNLHlCQUF5QjtDQUc5QjtBQUVELE1BQU0sMEJBQTBCO0NBSy9CO0FBRUQsdUNBQXVDO0FBQ2hDLE1BQU0sSUFBSSxHQUFHLEtBQUssRUFDckIsR0FBNkMsRUFDN0MsR0FBK0MsRUFDakQsRUFBRTs7SUFDQSxNQUFNLFlBQVksR0FBZ0IsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDakUsTUFBTSxXQUFXLEdBQWdCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQUFBO0lBRWpFLE1BQU0sV0FBVyxHQUFHLE1BQUEsR0FBRyxDQUFDLElBQUksMENBQUUsV0FBVyxDQUFBO0lBQ3pDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNqQixHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyxDQUFBO1FBQ2pELE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFBO0lBRXBDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNiLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLENBQUMsQ0FBQTtRQUN4RCxPQUFNO0lBQ1IsQ0FBQztJQUVELGtEQUFrRDtJQUNsRCxNQUFNLElBQUksR0FBRyxNQUFNLFdBQVcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDaEQsSUFBSSxJQUFJLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRSxDQUFDO1FBQ3JDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxDQUFDLENBQUE7UUFDbEQsT0FBTTtJQUNSLENBQUM7SUFFRCxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ2hGLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUE7QUFDdEIsQ0FBQyxDQUFBO0FBN0JZLFFBQUEsSUFBSSxRQTZCaEI7QUFHRCx1Q0FBdUM7QUFDbkMscURBQXFEO0FBQ3JELDRFQUE0RTtBQUM1RSwyREFBMkQ7QUFFM0QsNkJBQTZCO0FBQzdCLDhDQUE4QztBQUM5Qyx3QkFBd0I7QUFDeEIsd0RBQXdEO0FBQ3hELGFBQWE7QUFDYixNQUFNO0FBRU4seUVBQXlFO0FBQ3pFLGVBQWU7QUFDZixxQ0FBcUM7QUFDckMsMEVBQTBFO0FBQzFFLE9BQU87QUFDUCxNQUFNO0FBRU4sdUNBQXVDO0FBQ3ZDLG1GQUFtRjtBQUNuRiwyREFBMkQ7QUFDM0QseURBQXlEO0FBRXpELDhDQUE4QztBQUM5Qyx3QkFBd0I7QUFDeEIsd0RBQXdEO0FBQ3hELGFBQWE7QUFDYixNQUFNO0FBRU4seUNBQXlDO0FBRXpDLG9CQUFvQjtBQUNwQiwrREFBK0Q7QUFDL0QsYUFBYTtBQUNiLE1BQU07QUFFTix1REFBdUQ7QUFDdkQscURBQXFEO0FBQ3JELDRDQUE0QztBQUM1Qyx5REFBeUQ7QUFDekQsYUFBYTtBQUNiLE1BQU07QUFFTixxRkFBcUY7QUFDckYscUJBQXFCO0FBQ3JCLE1BQU07QUFDUixHQUFHIn0=