@devx-commerce/plugin-product-reviews
Version:
Product Reviews Plugin for Medusa
62 lines • 6.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateProductReviewStep = exports.updateProductReviewStepId = void 0;
const workflows_sdk_1 = require("@medusajs/workflows-sdk");
const product_review_1 = require("../../../modules/product-review");
const utils_1 = require("@medusajs/framework/utils");
exports.updateProductReviewStepId = "update-product-review-step";
exports.updateProductReviewStep = (0, workflows_sdk_1.createStep)(exports.updateProductReviewStepId, async (input, { container }) => {
const productReviewService = container.resolve(product_review_1.PRODUCT_REVIEW_MODULE);
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
const existingReview = await productReviewService.retrieveProductReview(input.id, { relations: ["associated_medias"] });
const { data: [config], } = await query.graph({
entity: "product_review_config",
fields: ["value"],
filters: { key: "AUTO_PUBLISH" },
});
await productReviewService.updateProductReviews({
id: input.id,
...(input.rating && { rating: input.rating }),
...(input.title && { title: input.title }),
...(input.description && { description: input.description }),
is_admin_verified: !!config?.value, // if its not auto publish then review's admin approval should get reverted to false as admin needs to update the status again from admin panel
...(input.is_admin_verified !== undefined && {
is_admin_verified: input.is_admin_verified,
}),
});
if (input?.medias?.length) {
await productReviewService.deleteReviewAssociatedMedias({
product_review_id: input.id,
});
await productReviewService.createReviewAssociatedMedias(input.medias.map((media) => ({
product_review_id: input.id,
url: media.url,
type: media.type,
})));
}
const newUpdatedReview = await productReviewService.retrieveProductReview(input.id, { relations: ["associated_medias"] });
return new workflows_sdk_1.StepResponse(newUpdatedReview, existingReview);
}, async (existingReview, { container }) => {
if (!existingReview)
return;
const productReviewService = container.resolve(product_review_1.PRODUCT_REVIEW_MODULE);
// First restore the basic review data
await productReviewService.updateProductReviews({
id: existingReview.id,
rating: existingReview.rating,
title: existingReview.title,
description: existingReview.description,
is_admin_verified: existingReview.is_admin_verified,
});
await productReviewService.deleteReviewAssociatedMedias({
product_review_id: existingReview.id,
});
if (existingReview.associated_medias?.length) {
await productReviewService.createReviewAssociatedMedias(existingReview.associated_medias.map((media) => ({
product_review_id: existingReview.id,
url: media.url,
type: media.type,
})));
}
});
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlLXByb2R1Y3QtcmV2aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9wcm9kdWN0LXJldmlld3Mvc3RlcHMvdXBkYXRlLXByb2R1Y3QtcmV2aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDJEQUFtRTtBQUduRSxvRUFBd0U7QUFHeEUscURBQXNFO0FBRXpELFFBQUEseUJBQXlCLEdBQUcsNEJBQTRCLENBQUM7QUFFekQsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLDBCQUFVLEVBQy9DLGlDQUF5QixFQUN6QixLQUFLLEVBQ0gsS0FHQyxFQUNELEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDNUMsc0NBQXFCLENBQ3RCLENBQUM7SUFDRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFRLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhFLE1BQU0sY0FBYyxHQUFHLE1BQU0sb0JBQW9CLENBQUMscUJBQXFCLENBQ3JFLEtBQUssQ0FBQyxFQUFFLEVBQ1IsRUFBRSxTQUFTLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxFQUFFLENBQ3JDLENBQUM7SUFFRixNQUFNLEVBQ0osSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQ2YsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLHVCQUF1QjtRQUMvQixNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUM7UUFDakIsT0FBTyxFQUFFLEVBQUUsR0FBRyxFQUFFLGNBQWMsRUFBRTtLQUNqQyxDQUFDLENBQUM7SUFFSCxNQUFNLG9CQUFvQixDQUFDLG9CQUFvQixDQUFDO1FBQzlDLEVBQUUsRUFBRSxLQUFLLENBQUMsRUFBRTtRQUNaLEdBQUcsQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLEVBQUUsTUFBTSxFQUFF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