@devx-commerce/plugin-loyalty
Version:
A starter for Medusa plugins.
64 lines • 5.13 kB
JavaScript
;
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