UNPKG

@devx-commerce/plugin-gati

Version:

Gati ERP integration for Medusa

128 lines 9.26 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.config = void 0; exports.default = partyMasterHandler; const utils_1 = require("@medusajs/framework/utils"); const core_flows_1 = require("@medusajs/medusa/core-flows"); const party_master_1 = require("../modules/party-master"); const address_formatter_1 = require("../utils/address-formatter"); const phone_mapper_1 = require("../utils/phone-mapper"); /** * Handles party master events by syncing them with Medusa stock location */ async function partyMasterHandler({ event: { data: eventData }, container, }) { try { const { operation, data } = eventData; console.log("eventData", eventData); for (const item of data) { switch (operation) { case "create": await handleCreate(container, item); break; case "update": await handleUpdate(container, item); break; case "delete": await handleDelete(container, item); break; default: throw new Error(`Unsupported operation: ${operation}`); } } } catch (error) { console.error("Error in collection master handler:", error); throw error; } } /** * Creates a new stock location in Medusa and updates the party master mapping */ async function handleCreate(container, data) { console.log("first", data); const { result } = await (0, core_flows_1.createStockLocationsWorkflow)(container).run({ input: { locations: [ { name: data.firm_name, address: { ...(0, address_formatter_1.formatAddress)({ address_1: data.firm_add1 || "", address_2: data.firm_add2 || "", address_3: data.firm_add3 || "", }), country_code: data.country === "India" ? "IN" : data.country, city: data.firm_city, phone: (0, phone_mapper_1.formatIndianPhoneNumber)(data.owner_mobile), province: data.state.match(/\[(.*?)\]/)?.[1] || data.state, postal_code: data.firm_pin_code, }, metadata: { external_id: data.id, }, }, ], }, }); const partyMasterService = container.resolve(party_master_1.PARTY_MASTER_MODULE); await partyMasterService.updatePartyMasters([ { id: data.id, mapping_id: result[0].id, }, ]); } /** * Updates an existing stock location in Medusa if it has a mapping */ async function handleUpdate(container, data) { const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY); const customerModuleService = container.resolve(utils_1.Modules.CUSTOMER); const { data: [party_master], } = await query.graph({ entity: "party_master", fields: ["id", "mapping_id"], filters: { id: data.id }, }); if (!party_master?.mapping_id) { return; } await (0, core_flows_1.updateStockLocationsWorkflow)(container).run({ input: { selector: { id: party_master.mapping_id, }, update: { name: data.firm_name, address: { ...(0, address_formatter_1.formatAddress)({ address_1: data.firm_add1 || "", address_2: data.firm_add2 || "", address_3: data.firm_add3 || "", }), country_code: data.country === "India" ? "IN" : data.country, city: data.firm_city, phone: (0, phone_mapper_1.formatIndianPhoneNumber)(data.owner_mobile), province: data.state.match(/\[(.*?)\]/)?.[1] || data.state, postal_code: data.firm_pin_code, }, }, }, }); } /** * Deletes a stock location in Medusa if it has a mapping */ async function handleDelete(container, data) { if (!data?.mapping_id) { return; } await (0, core_flows_1.deleteStockLocationsWorkflow)(container).run({ input: { ids: [data.mapping_id], }, }); } exports.config = { event: "party_master_location", }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFydHktbWFzdGVyLWxvY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3N1YnNjcmliZXJzL3BhcnR5LW1hc3Rlci1sb2NhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUEyRkEscUNBMEJDO0FBL0dELHFEQUErRTtBQUcvRSw0REFXcUM7QUFFckMsMERBQThEO0FBRTlELGtFQUFnRjtBQUNoRix3REFBZ0U7QUErRGhFOztHQUVHO0FBQ1ksS0FBSyxVQUFVLGtCQUFrQixDQUFDLEVBQy9DLEtBQUssRUFBRSxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsRUFDMUIsU0FBUyxHQUN3QjtJQUNqQyxJQUFJLENBQUM7UUFDSCxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxHQUFHLFNBQVMsQ0FBQztRQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwQyxLQUFLLE1BQU0sSUFBSSxJQUFJLElBQUksRUFBRSxDQUFDO1lBQ3hCLFFBQVEsU0FBUyxFQUFFLENBQUM7Z0JBQ2xCLEtBQUssUUFBUTtvQkFDWCxNQUFNLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7b0JBQ3BDLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLE1BQU0sWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsQ0FBQztvQkFDcEMsTUFBTTtnQkFDUixLQUFLLFFBQVE7b0JBQ1gsTUFBTSxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO29CQUNwQyxNQUFNO2dCQUNSO29CQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsMEJBQTBCLFNBQVMsRUFBRSxDQUFDLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxLQUFLLENBQUMscUNBQXFDLEVBQUUsS0FBSyxDQUFD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