medusa-v2-plugin-wishlist
Version:
A powerful wishlist plugin for Medusa, enabling customers to save and manage their favorite products seamlessly
26 lines • 2.8 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.validateVariantWishlistStep = void 0;
const utils_1 = require("@medusajs/framework/utils");
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
exports.validateVariantWishlistStep = (0, workflows_sdk_1.createStep)("validate-variant-in-wishlist", async ({ variant_id, sales_channel_id, wishlist, }, { container }) => {
// validate whether variant is in wishlist
const isInWishlist = wishlist.items?.some((item) => item.product_variant_id === variant_id);
if (isInWishlist) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Variant is already in wishlist");
}
// validate that the variant is available in the specified sales channel
const query = container.resolve("query");
const { data } = await query.graph({
entity: "variant",
fields: ["product.sales_channels.*"],
filters: {
id: variant_id,
},
});
const variantInSalesChannel = data[0].product.sales_channels.some((sc) => sc.id === sales_channel_id);
if (!variantInSalesChannel) {
throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Variant is not available in the specified sales channel");
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGUtdmFyaWFudC13aXNobGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3Mvc3RlcHMvdmFsaWRhdGUtdmFyaWFudC13aXNobGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBd0Q7QUFDeEQscUVBQStEO0FBU2xELFFBQUEsMkJBQTJCLEdBQUcsSUFBQSwwQkFBVSxFQUNuRCw4QkFBOEIsRUFDOUIsS0FBSyxFQUNILEVBQ0UsVUFBVSxFQUNWLGdCQUFnQixFQUNoQixRQUFRLEdBQ3lCLEVBQ25DLEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLDBDQUEwQztJQUMxQyxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FDdkMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxVQUFVLENBQ2pELENBQUM7SUFFRixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ2pCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGdDQUFnQyxDQUNqQyxDQUFDO0lBQ0osQ0FBQztJQUVELHdFQUF3RTtJQUN4RSxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDakMsTUFBTSxFQUFFLFNBQVM7UUFDakIsTUFBTSxFQUFFLENBQUMsMEJBQTBCLENBQUM7UUFDcEMsT0FBTyxFQUFFO1lBQ1AsRUFBRSxFQUFFLFVBQVU7U0FDZjtLQUNGLENBQUMsQ0FBQztJQUVILE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUMvRCxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxnQkFBZ0IsQ0FDbkMsQ0FBQztJQUVGLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzNCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHlEQUF5RCxDQUMxRCxDQUFDO0lBQ0osQ0FBQztBQUNILENBQUMsQ0FDRixDQUFDIn0=