UNPKG

@devx-commerce/plugin-product-reviews

Version:
139 lines 11.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.storeProductReviewRoutesMiddlewares = exports.checkReviewEligibilityQuerySchema = exports.defaultStoreReviewsQueryConfig = exports.allowedStoreProductReviewFields = exports.defaultStoreProductReviewFields = exports.updateProductReviewsSchema = exports.createProductReviewsSchema = exports.upsertProductReviewsSchema = exports.listStoreProductReviewsQuerySchema = void 0; const framework_1 = require("@medusajs/framework"); const validators_1 = require("@medusajs/medusa/api/utils/validators"); const zod_1 = require("zod"); exports.listStoreProductReviewsQuerySchema = (0, validators_1.createFindParams)({ offset: 0, limit: 50, }).merge(zod_1.z.object({ q: zod_1.z.string().optional(), id: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(), product_id: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(), order_id: zod_1.z.union([zod_1.z.string(), zod_1.z.array(zod_1.z.string())]).optional(), rating: zod_1.z .union([zod_1.z.number().max(5).min(1), zod_1.z.array(zod_1.z.number().max(5).min(1))]) .optional(), created_at: (0, validators_1.createOperatorMap)().optional(), updated_at: (0, validators_1.createOperatorMap)().optional(), })); exports.upsertProductReviewsSchema = zod_1.z.object({ phone: zod_1.z.string().optional(), email: zod_1.z.string().optional(), name: zod_1.z.string().optional(), reviews: zod_1.z.array(zod_1.z.object({ product_id: zod_1.z.string(), order_id: zod_1.z.string().optional(), order_item_id: zod_1.z.string().optional(), rating: zod_1.z.number().max(5).min(1), title: zod_1.z.string(), description: zod_1.z.string(), media: zod_1.z.array(zod_1.z.object({ url: zod_1.z.string(), type: zod_1.z.enum(["IMAGE", "VIDEO"]) })), })), }); exports.createProductReviewsSchema = zod_1.z.object({ phone: zod_1.z.string().optional(), email: zod_1.z.string().optional(), name: zod_1.z.string().optional(), product_id: zod_1.z.string(), order: zod_1.z .object({ id: zod_1.z.string(), item_id: zod_1.z.string(), }) .optional(), rating: zod_1.z.number().max(5).min(1), title: zod_1.z.string().optional(), description: zod_1.z.string(), medias: zod_1.z.array(zod_1.z.object({ url: zod_1.z.string(), type: zod_1.z.enum(["IMAGE", "VIDEO"]) })), }); exports.updateProductReviewsSchema = zod_1.z.object({ rating: zod_1.z.number().max(5).min(1).optional(), title: zod_1.z.string().optional(), description: zod_1.z.string().optional(), medias: zod_1.z .array(zod_1.z.object({ url: zod_1.z.string(), type: zod_1.z.enum(["IMAGE", "VIDEO"]) })) .optional(), }); exports.defaultStoreProductReviewFields = [ "id", "is_admin_verified", "title", "description", "is_verified_purchase", "product_id", "name", "rating", "content", "created_at", "updated_at", "response.*", "associated_medias.*", "product.*", "response.*", ]; exports.allowedStoreProductReviewFields = [ "id", "is_admin_verified", "product_id", "title", "description", "is_verified_purchase", "name", "rating", "content", "created_at", "updated_at", "response", "associated_medias", "product", "response", ]; exports.defaultStoreReviewsQueryConfig = { allowed: [...exports.allowedStoreProductReviewFields], defaults: [...exports.defaultStoreProductReviewFields], defaultLimit: 50, isList: true, }; exports.checkReviewEligibilityQuerySchema = zod_1.z .object({ customer_id: zod_1.z.string().optional(), email: zod_1.z.string().email().optional(), phone: zod_1.z.string().optional(), product_id: zod_1.z.string(), }) .refine((data) => { // At least one of customer_id, email, or phone must be provided return !!(data.customer_id || data.email || data.phone); }, { message: "At least one of customer_id, email, or phone must be provided", path: ["customer_id", "email", "phone"], }); exports.storeProductReviewRoutesMiddlewares = [ { matcher: "/store/product-reviews", method: "GET", middlewares: [ (0, framework_1.validateAndTransformQuery)(exports.listStoreProductReviewsQuerySchema, exports.defaultStoreReviewsQueryConfig), ], }, { matcher: "/store/product-reviews", method: "POST", middlewares: [(0, framework_1.validateAndTransformBody)(exports.createProductReviewsSchema)], }, { matcher: "/store/product-reviews/:id", method: "PUT", middlewares: [(0, framework_1.validateAndTransformBody)(exports.updateProductReviewsSchema)], }, { matcher: "/store/product-reviews/eligibility", method: "GET", middlewares: [ (0, framework_1.validateAndTransformQuery)(exports.checkReviewEligibilityQuerySchema, {}), ], }, ]; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Byb2R1Y3QtcmV2aWV3cy9taWRkbGV3YXJlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFJNkI7QUFDN0Isc0VBRytDO0FBRS9DLDZCQUF3QjtBQUlYLFFBQUEsa0NBQWtDLEdBQUcsSUFBQSw2QkFBZ0IsRUFBQztJQUNqRSxNQUFNLEVBQUUsQ0FBQztJQUNULEtBQUssRUFBRSxFQUFFO0NBQ1YsQ0FBQyxDQUFDLEtBQUssQ0FDTixPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ1AsQ0FBQyxFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLEVBQUU7SUFDeEIsRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ3pELFVBQVUsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRTtJQUNqRSxRQUFRLEVBQUUsT0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUU7SUFDL0QsTUFBTSxFQUFFLE9BQUM7U0FDTixLQUFLLENBQUMsQ0FBQyxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFDLENB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