@medusajs/medusa
Version:
Building blocks for digital commerce
51 lines • 2.2 kB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
exports.fetchPriceListPriceIdsForProduct = exports.transformPriceList = exports.fetchPriceList = void 0;
const utils_1 = require("@medusajs/framework/utils");
const fetchPriceList = async (id, scope, fields) => {
const remoteQuery = scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
const queryObject = (0, utils_1.remoteQueryObjectFromString)({
entryPoint: "price_lists",
variables: {
filters: { id },
},
fields,
});
const [priceList] = await remoteQuery(queryObject);
if (!(0, utils_1.isPresent)(priceList)) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.NOT_FOUND, `Price list with id: ${id} was not found`);
}
return (0, exports.transformPriceList)(priceList);
};
exports.fetchPriceList = fetchPriceList;
const transformPriceList = (priceList) => {
priceList.rules = (0, utils_1.buildPriceListRules)(priceList.price_list_rules);
priceList.prices = (0, utils_1.buildPriceSetPricesForCore)(priceList.prices);
delete priceList.price_list_rules;
return priceList;
};
exports.transformPriceList = transformPriceList;
const fetchPriceListPriceIdsForProduct = async (priceListId, productIds, scope) => {
const remoteQuery = scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_QUERY);
const priceSetIds = [];
const variants = await remoteQuery((0, utils_1.remoteQueryObjectFromString)({
entryPoint: "variants",
variables: { filters: { product_id: productIds } },
fields: ["price_set.id"],
}));
for (const variant of variants) {
if (variant.price_set?.id) {
priceSetIds.push(variant.price_set.id);
}
}
const productPrices = await remoteQuery((0, utils_1.remoteQueryObjectFromString)({
entryPoint: "prices",
variables: {
filters: { price_set_id: priceSetIds, price_list_id: priceListId },
},
fields: ["id"],
}));
return productPrices.map((price) => price.id);
};
exports.fetchPriceListPriceIdsForProduct = fetchPriceListPriceIdsForProduct;
//# sourceMappingURL=helpers.js.map
;