@devx-commerce/plugin-product-reviews
Version:
Product Reviews Plugin for Medusa
50 lines • 4.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.PUT = exports.GET = void 0;
const framework_1 = require("@medusajs/framework");
const api_response_1 = require("../../../lib/api-response");
const utils_1 = require("@medusajs/framework/utils");
const update_product_review_1 = require("../../../workflows/product-reviews/workflows/update-product-review");
const GET = async (req, res) => {
const query = req.scope.resolve("query");
const productService = framework_1.container.resolve(utils_1.Modules.PRODUCT);
const { category_id } = req.query;
if (category_id) {
let categoryIds = [];
if (Array.isArray(category_id)) {
categoryIds = category_id;
}
else if (typeof category_id === "string") {
categoryIds = [category_id];
}
const products = await productService.listProducts({
categories: { id: { $in: categoryIds } }
});
const productIds = products.map(product => product.id);
req.filterableFields.product_id = productIds;
delete req.filterableFields.category_id;
}
const { data, metadata } = await query.graph({
entity: "product_review",
...req.queryConfig,
filters: { ...req.filterableFields },
});
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({
reviews: data,
count: metadata?.count || 0,
offset: metadata?.skip || 0,
limit: metadata?.take || 10,
}));
};
exports.GET = GET;
const PUT = async (req, res) => {
const { data } = req.validatedBody;
await Promise.all(data.map(async (review) => {
await (0, update_product_review_1.updateProductReviewWorkflow)(req.scope).run({
input: { id: review.id, is_admin_verified: review.is_admin_verified },
});
}));
return (0, api_response_1.sendApiResponse)(res, (0, api_response_1.createSuccessResponse)({ message: "Product review updated successfully" }));
};
exports.PUT = PUT;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3QtcmV2aWV3cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFJNkI7QUFFN0IsNERBR21DO0FBQ25DLHFEQUFvRDtBQUVwRCw4R0FBaUg7QUFHMUcsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUErQixFQUMvQixHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDekMsTUFBTSxjQUFjLEdBQUcscUJBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBQyxDQUFBO0lBRXpELE1BQU0sRUFBRSxXQUFXLEVBQUUsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO0lBRWxDLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEIsSUFBSSxXQUFXLEdBQWEsRUFBRSxDQUFDO1FBQy9CLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQy9CLFdBQVcsR0FBRyxXQUF1QixDQUFDO1FBQ3hDLENBQUM7YUFBTSxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNDLFdBQVcsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQzlCLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxNQUFNLGNBQWMsQ0FBQyxZQUFZLENBQUM7WUFDakQsVUFBVSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxFQUFFO1NBQ3pDLENBQUMsQ0FBQztRQUVELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkQsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFFN0MsT0FBTyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO0lBQzVDLENBQUM7SUFFRCxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMzQyxNQUFNLEVBQUUsZ0JBQWdCO1FBQ3hCLEdBQUcsR0FBRyxDQUFDLFdBQVc7UUFDbEIsT0FBTyxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsZ0JBQWdCLEVBQUU7S0FDckMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFBLDhCQUFlLEVBQ3BCLEdBQUcsRUFDSCxJQUFBLG9DQUFxQixFQUFDO1FBQ3BCLE9BQU8sRUFBRSxJQUFJO1FBQ2IsS0FBSyxFQUFFLFFBQVEsRUFBRSxLQUFLLElBQUksQ0FBQztRQUMzQixNQUFNLEVBQUUsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDO1FBQzNCLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLEVBQUU7S0FDNUIsQ0FBQyxDQUNILENBQUM7QUFDSixDQUFDLENBQUM7QUExQ1csUUFBQSxHQUFHLE9BMENkO0FBRUssTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUN0QixHQUFpRCxFQUNqRCxHQUFtQixFQUNuQixFQUFFO0lBQ0YsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLEdBQUcsQ0FBQyxhQUFhLENBQUM7SUFFbkMsTUFBTSxPQUFPLENBQUMsR0FBRyxDQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxFQUFFO1FBQ3hCLE1BQU0sSUFBQSxtREFBMkIsRUFBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQy9DLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxpQkFBaUIsRUFBRTtTQUN0RSxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FDSCxDQUFDO0lBRUYsT0FBTyxJQUFBLDhCQUFlLEVBQUMsR0FBRyxFQUFFLElBQUEsb0NBQXFCLEVBQUMsRUFBRSxPQUFPLEVBQUUscUNBQXFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDekcsQ0FBQyxDQUFDO0FBZlcsUUFBQSxHQUFHLE9BZWQifQ==