UNPKG

@devx-commerce/plugin-loyalty

Version:

A starter for Medusa plugins.

64 lines 5.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.GET = GET; exports.POST = POST; exports.DELETE = DELETE; const middleware_1 = require("./middleware"); const loyalty_1 = require("../../../modules/loyalty"); const error_handler_1 = require("../../../utils/error-handler"); const response_handler_1 = require("../../../utils/response-handler"); // GET - Retrieve the loyalty config async function GET(req, res) { try { const loyaltyModuleService = req.scope.resolve(loyalty_1.LOYALTY_MODULE); const configs = await loyaltyModuleService.listConfigs(); (0, response_handler_1.sendSuccessResponse)(res, configs[0] || null); } catch (error) { (0, error_handler_1.handleError)(error, res); } } // POST - Create or update the loyalty config async function POST(req, res) { try { const validatedData = middleware_1.configDTO.parse(req.body); if (validatedData.spend_per_order_type === "percentage" && validatedData.spend_per_order > 100) { throw new Error("Spend per order cannot be greater than 100"); } const loyaltyModuleService = req.scope.resolve(loyalty_1.LOYALTY_MODULE); const existingConfigs = await loyaltyModuleService.listConfigs(); let config; if (existingConfigs.length > 0) { config = await loyaltyModuleService.updateConfigs({ id: existingConfigs[0].id, ...validatedData, }); } else { config = await loyaltyModuleService.createConfigs(validatedData); } const _config = await loyaltyModuleService.listConfigs(); (0, response_handler_1.sendSuccessResponse)(res, _config[0]); } catch (error) { (0, error_handler_1.handleError)(error, res); } } // DELETE - Delete the loyalty config async function DELETE(req, res) { try { const loyaltyModuleService = req.scope.resolve(loyalty_1.LOYALTY_MODULE); const existingConfigs = await loyaltyModuleService.listConfigs(); if (existingConfigs.length > 0) { await loyaltyModuleService.deleteConfigs(existingConfigs[0].id); } res.status(200).json({ message: "Loyalty config deleted successfully", }); } catch (error) { (0, error_handler_1.handleError)(error, res); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2xveWFsdHktY29uZmlnL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBWUEsa0JBY0M7QUFHRCxvQkFtQ0M7QUFHRCx3QkFvQkM7QUFsRkQsNkNBQXlDO0FBRXpDLHNEQUEwRDtBQUMxRCxnRUFBMkQ7QUFDM0Qsc0VBQXNFO0FBRXRFLG9DQUFvQztBQUM3QixLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUErQixFQUMvQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLG9CQUFvQixHQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUM7UUFFcEMsTUFBTSxPQUFPLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUV6RCxJQUFBLHNDQUFtQixFQUFDLEdBQUcsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLENBQUM7SUFDL0MsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFBLDJCQUFXLEVBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7QUFDSCxDQUFDO0FBRUQsNkNBQTZDO0FBQ3RDLEtBQUssVUFBVSxJQUFJLENBQ3hCLEdBQStCLEVBQy9CLEdBQW1CO0lBRW5CLElBQUksQ0FBQztRQUNILE1BQU0sYUFBYSxHQUFHLHNCQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUVoRCxJQUNFLGFBQWEsQ0FBQyxvQkFBb0IsS0FBSyxZQUFZO1lBQ25ELGFBQWEsQ0FBQyxlQUFlLEdBQUcsR0FBRyxFQUNuQyxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0Q0FBNEMsQ0FBQyxDQUFDO1FBQ2hFLENBQUM7UUFFRCxNQUFNLG9CQUFvQixHQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUM7UUFFcEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVqRSxJQUFJLE1BQU0sQ0FBQztRQUNYLElBQUksZUFBZSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxhQUFhLENBQUM7Z0JBQ2hELEVBQUUsRUFBRSxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDekIsR0FBRyxhQUFhO2FBQ2pCLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxHQUFHLE1BQU0sb0JBQW9CLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ25FLENBQUM7UUFFRyxNQUFNLE9BQU8sR0FBRyxNQUFNLG9CQUFvQixDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRTdELElBQUEsc0NBQW1CLEVBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBQSwyQkFBVyxFQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0FBQ0gsQ0FBQztBQUVELHFDQUFxQztBQUM5QixLQUFLLFVBQVUsTUFBTSxDQUMxQixHQUErQixFQUMvQixHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLG9CQUFvQixHQUN4QixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyx3QkFBYyxDQUFDLENBQUM7UUFFcEMsTUFBTSxlQUFlLEdBQUcsTUFBTSxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVqRSxJQUFJLGVBQWUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDL0IsTUFBTSxvQkFBb0IsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2xFLENBQUM7UUFFRCxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNuQixPQUFPLEVBQUUscUNBQXFDO1NBQy9DLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsSUFBQSwyQkFBVyxFQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMxQixDQUFDO0FBQ0gsQ0FBQyJ9