UNPKG

@devx-commerce/strapi

Version:

Medusa plugin for Strapi as CMS

57 lines 5.38 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.upsertCollectionStrapiStep = 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.upsertCollectionStrapiStep = (0, workflows_sdk_1.createStep)("upsert-collections-strapi-step", async (input, { container }) => { const strapiModuleService = container.resolve(strapi_1.STRAPI_MODULE); const productModuleService = container.resolve(utils_1.Modules.PRODUCT); const collections = []; const originalMetadata = {}; try { for (const collection of input.collections) { // Store original metadata for compensation originalMetadata[collection.id] = collection.metadata; const entry = await strapiModuleService.upsertCollection(collection); await productModuleService.updateProductCollections(collection.id, { metadata: { ...collection.metadata, strapiId: entry.documentId, strapiSyncedAt: new Date().valueOf(), }, }); collections.push({ documentId: entry.documentId, collectionId: collection.id, }); } } catch (e) { return workflows_sdk_1.StepResponse.permanentFailure(`Error creating collections in Strapi: ${e.message}`, { collections, originalMetadata }); } return new workflows_sdk_1.StepResponse(collections, { collections, originalMetadata }); }, async (compensateInput, { container }) => { if (!compensateInput) return; const { collections, 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 collection of collections) { try { // Revert metadata to original state if (originalMetadata[collection.collectionId]) { await productModuleService.updateProductCollections(collection.collectionId, { metadata: originalMetadata[collection.collectionId], }); } // Delete the Strapi entry if it was created await strapiModuleService.deleteCollection(collection.collectionId); } catch (error) { console.error(`Failed to compensate collection ${collection.collectionId}:`, error); } } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWNvbGxlY3Rpb25zLXN0cmFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvdXBzZXJ0LWNvbGxlY3Rpb25zLXN0cmFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxRUFBNkU7QUFDN0UsaURBQXFEO0FBRXJELHFEQUFvRDtBQVd2QyxRQUFBLDBCQUEwQixHQUFHLElBQUEsMEJBQVUsRUFDbEQsZ0NBQWdDLEVBQ2hDLEtBQUssRUFBRSxLQUFnQixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUN4QyxNQUFNLG1CQUFtQixHQUN2QixTQUFTLENBQUMsT0FBTyxDQUFDLHNCQUFhLENBQUMsQ0FBQztJQUNuQyxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRWhFLE1BQU0sV0FBVyxHQUFpQixFQUFFLENBQUM7SUFDckMsTUFBTSxnQkFBZ0IsR0FBd0IsRUFBRSxDQUFDO0lBRWpELElBQUksQ0FBQztRQUNILEtBQUssTUFBTSxVQUFVLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzNDLDJDQUEyQztZQUMzQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLEdBQUcsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUV0RCxNQUFNLEtBQUssR0FBRyxNQUFNLG1CQUFtQixDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3JFLE1BQU0sb0JBQW9CLENBQUMsd0JBQXdCLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRTtnQkFDakUsUUFBUSxFQUFFO29CQUNSLEdBQUcsVUFBVSxDQUFDLFFBQVE7b0JBQ3RCLFFBQVEsRUFBRSxLQUFLLENBQUMsVUFBVTtvQkFDMUIsY0FBYyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFO2lCQUNyQzthQUNGLENBQUMsQ0FBQztZQUNILFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsVUFBVSxFQUFFLEtBQUssQ0FBQyxVQUFVO2dCQUM1QixZQUFZLEVBQUUsVUFBVSxDQUFDLEVBQUU7YUFDNUIsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1FBQ1gsT0FBTyw0QkFBWSxDQUFDLGdCQUFnQixDQUNsQyx5Q0FBeUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUNwRCxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVELE9BQU8sSUFBSSw0QkFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDLENBQUM7QUFDMUUsQ0FBQyxFQUNELEtBQUssRUFBRSxlQUFlLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3ZDLElBQUksQ0FBQyxlQUFlO1FBQUUsT0FBTztJQUU3QixNQUFNLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLEdBQUcsZUFBZSxDQUFDO0lBQzFELE1BQU0sbUJBQW1CLEdBQ3ZCLFNBQVMsQ0FBQyxPQUFPLENBQUMsc0JBQWEsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFaEUscURBQXFEO0lBQ3JELEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDO1lBQ0gsb0NBQW9DO1lBQ3BDLElBQUksZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQzlDLE1BQU0sb0JBQW9CLENBQUMsd0JBQXdCLENBQ2pELFVBQVUsQ0FBQyxZQUFZLEVBQ3ZCO29CQUNFLFFBQVEsRUFBRSxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDO2lCQUNwRCxDQUNGLENBQUM7WUFDSixDQUFDO1lBRUQsNENBQTRDO1lBQzVDLE1BQU0sbUJBQW1CLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3RFLENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsT0FBTyxDQUFDLEtBQUssQ0FDWCxtQ0FBbUMsVUFBVSxDQUFDLFlBQVksR0FBRyxFQUM3RCxLQUFLLENBQ04sQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0FBQ0gsQ0FBQyxDQUNGLENBQUMifQ==