@jahp87/medusa-plugin-meilisearch
Version:
Medusa plugin for Meilisearch integration for Medusa 2
122 lines • 9.5 kB
JavaScript
;
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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