UNPKG

@devx-commerce/plugin-loyalty

Version:

A starter for Medusa plugins.

32 lines 2.95 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.POST = POST; const utils_1 = require("@medusajs/framework/utils"); const error_handler_1 = require("../../../../../utils/error-handler"); const response_handler_1 = require("../../../../../utils/response-handler"); // POST /admin/loyalty-points/bulk/credit — kicks off an async bulk loyalty-points credit from // a CSV. The heavy work (download -> parse -> resolve customer -> credit -> error CSV -> feed // notification) runs in the `loyalty.bulk_import` subscriber; this route just validates, // emits the event, and returns. async function POST(req, res) { try { const userService = req.scope.resolve(utils_1.Modules.USER); const eventBus = req.scope.resolve(utils_1.Modules.EVENT_BUS); const userId = req.auth_context.actor_id; const user = await userService.retrieveUser(userId); await eventBus.emit({ name: "loyalty.bulk_import", data: { s3_url: req.validatedBody.s3_url, requested_by_id: userId, requested_by_name: [user.first_name, user.last_name].filter(Boolean).join(" ") || user.email, }, }); (0, response_handler_1.sendSuccessResponse)(res, { success: true }, "Loyalty import initiated. You will be notified via feed when complete."); } catch (error) { (0, error_handler_1.handleError)(error, res); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2xveWFsdHktcG9pbnRzL2J1bGsvY3JlZGl0L3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esb0JBOEJDO0FBeENELHFEQUFvRDtBQUVwRCxzRUFBaUU7QUFDakUsNEVBQTRFO0FBRzVFLDhGQUE4RjtBQUM5Riw4RkFBOEY7QUFDOUYseUZBQXlGO0FBQ3pGLGdDQUFnQztBQUN6QixLQUFLLFVBQVUsSUFBSSxDQUN4QixHQUF1RCxFQUN2RCxHQUFtQjtJQUVuQixJQUFJLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEQsTUFBTSxRQUFRLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXRELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLE1BQU0sV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUVwRCxNQUFNLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDbEIsSUFBSSxFQUFFLHFCQUFxQjtZQUMzQixJQUFJLEVBQUU7Z0JBQ0osTUFBTSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsTUFBTTtnQkFDaEMsZUFBZSxFQUFFLE1BQU07Z0JBQ3ZCLGlCQUFpQixFQUNmLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7b0JBQzNELElBQUksQ0FBQyxLQUFLO2FBQ2I7U0FDRixDQUFDLENBQUM7UUFFSCxJQUFBLHNDQUFtQixFQUNqQixHQUFHLEVBQ0gsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLEVBQ2pCLHdFQUF3RSxDQUN6RSxDQUFDO0lBQ0osQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixJQUFBLDJCQUFXLEVBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7QUFDSCxDQUFDIn0=