UNPKG

@rokmohar/medusa-plugin-meilisearch

Version:
70 lines 6.55 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.upsertInventoryLevelStep = void 0; const workflows_sdk_1 = require("@medusajs/workflows-sdk"); const utils_1 = require("@medusajs/utils"); const meilisearch_1 = require("../../modules/meilisearch"); exports.upsertInventoryLevelStep = (0, workflows_sdk_1.createStep)('upsert-inventory-level', async ({ inventoryLevelId }, { container }) => { const queryService = container.resolve(utils_1.ContainerRegistrationKeys.QUERY); const meilisearchService = container.resolve(meilisearch_1.MEILISEARCH_MODULE); const { data: levels } = await queryService.graph({ entity: 'inventory_level', fields: ['inventory_item_id'], filters: { id: inventoryLevelId }, }); if (!levels.length || !levels[0].inventory_item_id) { return new workflows_sdk_1.StepResponse({ products: [] }); } const inventoryItemId = levels[0].inventory_item_id; const { data: links } = await queryService.graph({ entity: 'product_variant_inventory_item', fields: ['variant_id'], filters: { inventory_item_id: inventoryItemId }, }); const variantIds = links .map((l) => { return l.variant_id; }) .filter(Boolean); if (!variantIds.length) { return new workflows_sdk_1.StepResponse({ products: [] }); } const { data: variants } = await queryService.graph({ entity: 'product_variant', fields: ['product_id'], filters: { id: variantIds }, }); const productIds = [ ...new Set(variants .map((v) => { return v.product_id; }) .filter(Boolean)), ]; if (!productIds.length) { return new workflows_sdk_1.StepResponse({ products: [] }); } const productFields = await meilisearchService.getFieldsForType(utils_1.SearchUtils.indexTypes.PRODUCTS); const productIndexes = await meilisearchService.getIndexesByType(utils_1.SearchUtils.indexTypes.PRODUCTS); const { data: products } = await queryService.graph({ entity: 'product', fields: productFields, filters: { id: productIds }, }); await Promise.all(products.map(async (product) => { if (!product.status || product.status === 'published') { await Promise.all(productIndexes.map(async (indexKey) => { return meilisearchService.addDocuments(indexKey, [product], utils_1.SearchUtils.indexTypes.PRODUCTS, { container, }); })); } else { await Promise.all(productIndexes.map(async (indexKey) => { return meilisearchService.deleteDocument(indexKey, product.id); })); } })); return new workflows_sdk_1.StepResponse({ products }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBzZXJ0LWludmVudG9yeS1sZXZlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvdXBzZXJ0LWludmVudG9yeS1sZXZlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSwyREFBa0U7QUFDbEUsMkNBQXdFO0FBQ3hFLDJEQUFrRjtBQU1yRSxRQUFBLHdCQUF3QixHQUFHLElBQUEsMEJBQVUsRUFDaEQsd0JBQXdCLEVBQ3hCLEtBQUssRUFBRSxFQUFFLGdCQUFnQixFQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3ZELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDdkUsTUFBTSxrQkFBa0IsR0FBdUIsU0FBUyxDQUFDLE9BQU8sQ0FBQyxnQ0FBa0IsQ0FBQyxDQUFBO0lBRXBGLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsS0FBSyxDQUFDO1FBQ2hELE1BQU0sRUFBRSxpQkFBaUI7UUFDekIsTUFBTSxFQUFFLENBQUMsbUJBQW1CLENBQUM7UUFDN0IsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLGdCQUFnQixFQUFFO0tBQ2xDLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7UUFDbkQsT0FBTyxJQUFJLDRCQUFZLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUMzQyxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQUcsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFBO0lBRW5ELE1BQU0sRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxZQUFZLENBQUMsS0FBSyxDQUFD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