UNPKG

@devx-commerce/plugin-product-reviews

Version:
70 lines 5.5 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.verifyPurchaseHistoryStep = void 0; const utils_1 = require("@medusajs/framework/utils"); const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk"); exports.verifyPurchaseHistoryStep = (0, workflows_sdk_1.createStep)("verify-purchase-history", async (data, { container }) => { const query = container.resolve("query"); // If order_id and order_item_id are provided, verify them first if (data.order_id && data.order_item_id) { const { data: specificOrder } = await query.graph({ entity: "order", fields: ["id", "status", "items.id", "items.product_id", "created_at"], filters: { id: data.order_id, customer_id: data.customer_id, status: utils_1.OrderStatus.COMPLETED, items: { id: data.order_item_id, product_id: data.product_id, }, }, }); if (specificOrder.length > 0) { return new workflows_sdk_1.StepResponse({ isVerified: true, order_id: specificOrder[0].id, order_item_id: data.order_item_id, }); } } // If no specific order is found or provided, find the most relevant order const { data: orders } = await query.graph({ entity: "order", fields: ["id", "status", "items.id", "items.product_id", "created_at"], filters: { customer_id: data.customer_id, status: utils_1.OrderStatus.COMPLETED, items: { product_id: data.product_id }, }, pagination: { take: 1, skip: 0, order: { created_at: "DESC" }, }, }); if (orders.length === 0) { return new workflows_sdk_1.StepResponse({ isVerified: false, order_id: null, order_item_id: null, }); } // Find the most relevant order and item const mostRelevantOrder = orders[0]; // Most recent order const relevantItem = mostRelevantOrder?.items?.find((item) => item.product_id === data.product_id); // Only verify if we actually found a matching order item if (!relevantItem) { return new workflows_sdk_1.StepResponse({ isVerified: false, order_id: null, order_item_id: null, }); } return new workflows_sdk_1.StepResponse({ isVerified: true, order_id: mostRelevantOrder.id, order_item_id: relevantItem.id, }); }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LXB1cmNoYXNlLWhpc3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Byb2R1Y3QtcmV2aWV3cy9zdGVwcy92ZXJpZnktcHVyY2hhc2UtaGlzdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxREFBd0Q7QUFDeEQscUVBQTZFO0FBRWhFLFFBQUEseUJBQXlCLEdBQUcsSUFBQSwwQkFBVSxFQUNqRCx5QkFBeUIsRUFDekIsS0FBSyxFQUNILElBS0MsRUFDRCxFQUFFLFNBQVMsRUFBRSxFQUNiLEVBQUU7SUFDRixNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBRXpDLGdFQUFnRTtJQUNoRSxJQUFJLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3hDLE1BQU0sRUFBRSxJQUFJLEVBQUUsYUFBYSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2hELE1BQU0sRUFBRSxPQUFPO1lBQ2YsTUFBTSxFQUFFLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDO1lBQ3RFLE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVE7Z0JBQ2pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsTUFBTSxFQUFFLG1CQUFXLENBQUMsU0FBUztnQkFDN0IsS0FBSyxFQUFFO29CQUNMLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYTtvQkFDdEIsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO2lCQUM1QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxhQUFhLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSw0QkFBWSxDQUFDO2dCQUN0QixVQUFVLEVBQUUsSUFBSTtnQkFDaEIsUUFBUSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUM3QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWE7YUFDbEMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7SUFFRCwwRUFBMEU7SUFDMUUsTUFBTSxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDekMsTUFBTSxFQUFFLE9BQU87UUFDZixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxrQkFBa0IsRUFBRSxZQUFZLENBQUM7UUFDdEUsT0FBTyxFQUFFO1lBQ1AsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLE1BQU0sRUFBRSxtQkFBVyxDQUFDLFNBQVM7WUFDN0IsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUU7U0FDdkM7UUFDRCxVQUFVLEVBQUU7WUFDVixJQUFJLEVBQUUsQ0FBQztZQUNQLElBQUksRUFBRSxDQUFDO1lBQ1AsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtTQUM5QjtLQUNGLENBQUMsQ0FBQztJQUVILElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN4QixPQUFPLElBQUksNEJBQVksQ0FBQztZQUN0QixVQUFVLEVBQUUsS0FBSztZQUNqQixRQUFRLEVBQUUsSUFBSTtZQUNkLGFBQWEsRUFBRSxJQUFJO1NBQ3BCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCx3Q0FBd0M7SUFDeEMsTUFBTSxpQkFBaUIsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0I7SUFDekQsTUFBTSxZQUFZLEdBQUcsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FDakQsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FDOUMsQ0FBQztJQUVGLHlEQUF5RDtJQUN6RCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLDRCQUFZLENBQUM7WUFDdEIsVUFBVSxFQUFFLEtBQUs7WUFDakIsUUFBUSxFQUFFLElBQUk7WUFDZCxhQUFhLEVBQUUsSUFBSTtTQUNwQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsT0FBTyxJQUFJLDRCQUFZLENBQUM7UUFDdEIsVUFBVSxFQUFFLElBQUk7UUFDaEIsUUFBUSxFQUFFLGlCQUFpQixDQUFDLEVBQUU7UUFDOUIsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFO0tBQy9CLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDIn0=