UNPKG

@devx-commerce/plugin-product-reviews

Version:
79 lines 7.57 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createProductReviewsStep = void 0; const utils_1 = require("@medusajs/utils"); const workflows_sdk_1 = require("@medusajs/workflows-sdk"); const product_review_1 = require("../../../modules/product-review"); const verify_purchase_history_1 = require("../workflows/verify-purchase-history"); const createProductReviewsStepId = "create-product-review-step"; exports.createProductReviewsStep = (0, workflows_sdk_1.createStep)(createProductReviewsStepId, async (input, { container }) => { const productReviewService = container.resolve(product_review_1.PRODUCT_REVIEW_MODULE); const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY); let isVerified = false; if (input.review.order?.id) isVerified = true; if (!isVerified) { const { result } = await (0, verify_purchase_history_1.verifyPurchaseHistoryWorkflow)(container).run({ input: { customer_id: input.customer.id, product_id: input.review.product_id, order_id: input.review.order?.id, order_item_id: input.review.order?.item_id, }, }); isVerified = result.isVerified; if (isVerified) { input.review.order = { id: result.order_id, item_id: result.order_item_id, }; } } const { data: [config], } = await query.graph({ entity: "product_review_config", fields: ["value"], filters: { key: "AUTO_PUBLISH" }, }); const newReview = await productReviewService.createProductReviews({ ...((input.customer.first_name || input.customer.last_name) && { name: input.customer.first_name + " " + input.customer.last_name, }), ...(input.customer.email && { email: input.customer.email }), ...(input.customer.phone && { phone: input.customer.phone }), rating: input.review.rating, title: input.review.title, description: input.review.description, is_verified_purchase: isVerified, product_id: input.review.product_id, // Store product_id directly ...(config?.value && { is_admin_verified: true }), }); if (input.review.medias.length) { await productReviewService.createReviewAssociatedMedias(input.review.medias.map((media) => ({ product_review_id: newReview.id, url: media.url, type: media.type, }))); } // Remove the link creation // await link.create({ // [PRODUCT_REVIEW_MODULE]: { product_review_id: newReview.id }, // [Modules.PRODUCT]: { product_id: input.review.product_id }, // }); const createdReview = await productReviewService.retrieveProductReview(newReview.id, { relations: ["associated_medias"] }); if (!createdReview) { throw new utils_1.MedusaError(utils_1.MedusaError.Types.INVALID_DATA, "Failed to create product reviews"); } return new workflows_sdk_1.StepResponse(createdReview, { productReviewId: createdReview.id, }); }, async (data, { container }) => { if (!data?.productReviewId) return; const productReviewService = container.resolve(product_review_1.PRODUCT_REVIEW_MODULE); await productReviewService.deleteProductReviews(data.productReviewId); // Remove the link deletion as well // link.delete({ // [PRODUCT_REVIEW_MODULE]: { product_review_id: data.productReviewId }, // }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXByb2R1Y3QtcmV2aWV3cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy93b3JrZmxvd3MvcHJvZHVjdC1yZXZpZXdzL3N0ZXBzL2NyZWF0ZS1wcm9kdWN0LXJldmlld3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRUEsMkNBQXlFO0FBQ3pFLDJEQUFtRTtBQUduRSxvRUFBd0U7QUFFeEUsa0ZBQXFGO0FBRXJGLE1BQU0sMEJBQTBCLEdBQUcsNEJBQTRCLENBQUM7QUFFbkQsUUFBQSx3QkFBd0IsR0FBRyxJQUFBLDBCQUFVLEVBQ2hELDBCQUEwQixFQUMxQixLQUFLLEVBQ0gsS0FHQyxFQUNELEVBQUUsU0FBUyxFQUFFLEVBQ2IsRUFBRTtJQUNGLE1BQU0sb0JBQW9CLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FDNUMsc0NBQXFCLENBQ3RCLENBQUM7SUFDRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFRLGlDQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhFLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztJQUV2QixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUU7UUFBRSxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBRTlDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNoQixNQUFNLEVBQUUsTUFBTSxFQUFFLEdBQUcsTUFBTSxJQUFBLHVEQUE2QixFQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUNwRSxLQUFLLEVBQUU7Z0JBQ0wsV0FBVyxFQUFFLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRTtnQkFDOUIsVUFBVSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsVUFBVTtnQkFDbkMsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2hDLGFBQWEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUss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