UNPKG

@jahp87/medusa-plugin-meilisearch

Version:

Medusa plugin for Meilisearch integration for Medusa 2

122 lines 9.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.PrefixTypeEnum = void 0; exports.getProductsByPrefix = getProductsByPrefix; // Definition of the enum var PrefixTypeEnum; (function (PrefixTypeEnum) { PrefixTypeEnum["resitem"] = "resitem"; PrefixTypeEnum["iitem"] = "iitem"; PrefixTypeEnum["plist"] = "plist"; PrefixTypeEnum["prod"] = "prod"; })(PrefixTypeEnum || (exports.PrefixTypeEnum = PrefixTypeEnum = {})); // Function for the "res" case async function getResProducts(query, reservationId) { const { data: reservationItems } = await query.graph({ entity: 'reservation_item', where: { id: reservationId }, // Reemplaza con tu ID de ReservationItem fields: ['inventory_item_id', 'inventory_item.*'], }); // Si encontramos el ReservationItem, ahora consultamos el inventory_item relacionado if (reservationItems && reservationItems.length > 0) { const reservationItem = reservationItems[0]; // Consulta para obtener las variantes de producto relacionadas con el inventory_item const { data: inventoryItems } = await query.graph({ entity: 'inventory_item', where: { id: reservationItem.inventory_item_id }, fields: ['variants.*', 'variants.product_id'], }); // Extraer los IDs de los productos if (inventoryItems && inventoryItems.length > 0) { const productIds = inventoryItems[0].variants.map((variant) => variant.product_id); return productIds; } return []; } return []; } // Function for the "inv" case async function getInvItemProducts(query, inventoryItemId) { const { data: inventoryItems } = await query.graph({ entity: 'inventory_item', where: { id: inventoryItemId }, // Reemplaza con tu ID de inventory item fields: ['variants.*', 'variants.product_id'], }); // Extraer los IDs de los productos if (inventoryItems && inventoryItems.length > 0) { const productIds = inventoryItems[0].variants.map((variant) => variant.product_id); return productIds; } // Return an empty array if no inventory items are found return []; } async function getPriceListProducts(query, priceListId) { try { // Primero obtenemos la lista de precios con sus precios const { data: priceLists } = await query.graph({ entity: 'price_list', where: { id: priceListId }, fields: [ 'id', 'name', 'prices.*', 'prices.price_set_id' ], limit: 1 }); if (!priceLists?.length || !priceLists[0].prices?.length) { return []; } // Extraemos los price_set_ids const priceSetIds = priceLists[0].prices .map(price => price.price_set_id) .filter(Boolean); if (!priceSetIds.length) { return []; } // Consultamos las variantes de productos relacionadas con estos price_sets const { data: variants } = await query.graph({ entity: 'product_variant', where: { price_set_id: priceSetIds }, fields: [ 'product_id' ] }); // Extraemos los IDs de productos únicos const productIds = [...new Set(variants.map(variant => variant.product_id))]; return productIds; } catch (error) { console.error(`Error: ${error.message}`); return []; } } // Main function that uses switch-case async function getProductsByPrefix(prefix, query, id, logger) { try { switch (prefix) { case PrefixTypeEnum.resitem: // Llama a la función para obtener productos relacionados con "res" return await getResProducts(query, id); case PrefixTypeEnum.iitem: // Llama a la función para obtener productos relacionados con "iitem" return await getInvItemProducts(query, id); case PrefixTypeEnum.plist: // Llama a la función para obtener productos relacionados con "pl" return await getPriceListProducts(query, id); case PrefixTypeEnum.prod: // Retorna un array vacío para el caso "prod" return []; default: // Maneja cualquier otro caso no definido logger.warn(`Prefijo desconocido: ${prefix}`); return []; } } catch (error) { // Manejo de errores: Log del error y retorno de un array vacío logger.error(`Error al obtener productos para el prefijo "${prefix}":`, error); return []; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBeUdBLGtEQW1DQztBQTVJRCx5QkFBeUI7QUFDekIsSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3hCLHFDQUFtQixDQUFBO0lBQ25CLGlDQUFlLENBQUE7SUFDZixpQ0FBZSxDQUFBO0lBQ2YsK0JBQWEsQ0FBQTtBQUNmLENBQUMsRUFMVyxjQUFjLDhCQUFkLGNBQWMsUUFLekI7QUFFRCw4QkFBOEI7QUFDOUIsS0FBSyxVQUFVLGNBQWMsQ0FBQyxLQUFVLEVBQUUsYUFBcUI7SUFDN0QsTUFBTSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUNuRCxNQUFNLEVBQUUsa0JBQWtCO1FBQzFCLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxhQUFhLEVBQUUsRUFBRSx5Q0FBeUM7UUFDdkUsTUFBTSxFQUFFLENBQUMsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUM7S0FDbEQsQ0FBQyxDQUFBO0lBRUYscUZBQXFGO0lBQ3JGLElBQUksZ0JBQWdCLElBQUksZ0JBQWdCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3BELE1BQU0sZUFBZSxHQUFHLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFBO1FBRTNDLHFGQUFxRjtRQUNyRixNQUFNLEVBQUUsSUFBSSxFQUFFLGNBQWMsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUNqRCxNQUFNLEVBQUUsZ0JBQWdCO1lBQ3hCLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxlQUFlLENBQUMsaUJBQWlCLEVBQUU7WUFDaEQsTUFBTSxFQUFFLENBQUMsWUFBWSxFQUFFLHFCQUFxQixDQUFDO1NBQzlDLENBQUMsQ0FBQTtRQUVGLG1DQUFtQztRQUNuQyxJQUFJLGNBQWMsSUFBSSxjQUFj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