UNPKG

@devx-commerce/strapi

Version:

Medusa plugin for Strapi as CMS

59 lines 5.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.upsertProductVariantsStrapiStep = void 0; const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk"); const strapi_1 = require("../../modules/strapi"); const utils_1 = require("@medusajs/framework/utils"); exports.upsertProductVariantsStrapiStep = (0, workflows_sdk_1.createStep)("upsert-product-variants-strapi-step", async (input, { container }) => { const strapiModuleService = container.resolve(strapi_1.STRAPI_MODULE); const productModuleService = container.resolve(utils_1.Modules.PRODUCT); const variants = []; const originalMetadata = {}; try { for (const variant of input.variants) { // Store original metadata for compensation originalMetadata[variant.id] = variant.metadata; const entry = await strapiModuleService.upsertProductVariant(variant); if (entry) { await productModuleService.updateProductVariants(variant.id, { metadata: { ...variant.metadata, strapiId: entry.documentId, strapiSyncedAt: new Date().valueOf(), }, }); variants.push({ documentId: entry.documentId, variantId: variant.id, }); } } } catch (e) { return workflows_sdk_1.StepResponse.permanentFailure(`Error creating variants in Strapi: ${e.message}`, { variants, originalMetadata }); } return new workflows_sdk_1.StepResponse(variants, { variants, originalMetadata }); }, async (compensateInput, { container }) => { if (!compensateInput) return; const { variants, originalMetadata } = compensateInput; const strapiModuleService = container.resolve(strapi_1.STRAPI_MODULE); const productModuleService = container.resolve(utils_1.Modules.PRODUCT); // Revert metadata changes and delete created entries for (const variant of variants) { try { // Revert metadata to original state if (originalMetadata[variant.variantId]) { await productModuleService.updateProductVariants(variant.variantId, { metadata: originalMetadata[variant.variantId], }); } // Delete the Strapi entry if it was created await strapiModuleService.deleteProductVariant(variant.variantId); } catch (error) { console.error(`Failed to compensate variant ${variant.variantId}:`, error); } } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LXByb2R1Y3QtdmFyaWFudHMtc3RyYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9zdGVwcy91cHNlcnQtcHJvZHVjdC12YXJpYW50cy1zdHJhcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscUVBQTZFO0FBQzdFLGlEQUFxRDtBQUVyRCxxREFBb0Q7QUFXdkMsUUFBQSwrQkFBK0IsR0FBRyxJQUFBLDBCQUFVLEVBQ3ZELHFDQUFxQyxFQUNyQyxLQUFLLEVBQUUsS0FBZ0IsRUFBRSxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUU7SUFDeEMsTUFBTSxtQkFBbUIsR0FDdkIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQkFBYSxDQUFDLENBQUM7SUFDbkMsTUFBTSxvQkFBb0IsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUVoRSxNQUFNLFFBQVEsR0FBaUIsRUFBRSxDQUFDO0lBQ2xDLE1BQU0sZ0JBQWdCLEdBQXdCLEVBQUUsQ0FBQztJQUVqRCxJQUFJLENBQUM7UUFDSCxLQUFLLE1BQU0sT0FBTyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNyQywyQ0FBMkM7WUFDM0MsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUM7WUFFaEQsTUFBTSxLQUFLLEdBQUcsTUFBTSxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RSxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE1BQU0sb0JBQW9CLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRTtvQkFDM0QsUUFBUSxFQUFFO3dCQUNSLEdBQUcsT0FBTyxDQUFDLFFBQVE7d0JBQ25CLFFBQVEsRUFBRSxLQUFLLENBQUMsVUFBVTt3QkFDMUIsY0FBYyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO3FCQUNyQztpQkFDRixDQUFDLENBQUM7Z0JBQ0gsUUFBUSxDQUFDLElBQUksQ0FBQztvQkFDWixVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7b0JBQzVCLFNBQVMsRUFBRSxPQUFPLENBQUMsRUFBRTtpQkFDdEIsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztRQUNYLE9BQU8sNEJBQVksQ0FBQyxnQkFBZ0IsQ0FDbEMsc0NBQXNDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFDakQsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FDL0IsQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLElBQUksNEJBQVksQ0FBQyxRQUFRLEVBQUUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0FBQ3BFLENBQUMsRUFDRCxLQUFLLEVBQUUsZUFBZSxFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN2QyxJQUFJLENBQUMsZUFBZTtRQUFFLE9BQU87SUFFN0IsTUFBTSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGVBQWUsQ0FBQztJQUN2RCxNQUFNLG1CQUFtQixHQUN2QixTQUFTLENBQUMsT0FBTyxDQUFDLHNCQUFhLENBQUMsQ0FBQztJQUNuQyxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWhFLHFEQUFxRDtJQUNyRCxLQUFLLE1BQU0sT0FBTyxJQUFJLFFBQVEsRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQztZQUNILG9DQUFvQztZQUNwQyxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO2dCQUN4QyxNQUFNLG9CQUFvQixDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUU7b0JBQ2xFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDO2lCQUM5QyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsNENBQTRDO1lBQzVDLE1BQU0sbUJBQW1CLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3BFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FDWCxnQ0FBZ0MsT0FBTyxDQUFDLFNBQVMsR0FBRyxFQUNwRCxLQUFLLENBQ04sQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUMifQ==