@lodashventure/medusa-review 1.5.16 → 1.5.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,26 +1,53 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.GET = void 0;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
5
|
const getReviewsWorkflow_1 = require("../../../../workflows/review/getReviewsWorkflow");
|
|
5
6
|
const schema_org_1 = require("../../../../utils/schema-org");
|
|
6
7
|
const GET = async (req, res) => {
|
|
7
8
|
const { productId } = req.params;
|
|
9
|
+
const baseFilters = {
|
|
10
|
+
product_id: productId,
|
|
11
|
+
status: "approved",
|
|
12
|
+
parent: null,
|
|
13
|
+
};
|
|
8
14
|
const { result } = await (0, getReviewsWorkflow_1.getReviewsWorkflow)().run({
|
|
9
15
|
input: {
|
|
10
16
|
queryConfig: req.queryConfig,
|
|
11
|
-
filters:
|
|
12
|
-
product_id: productId,
|
|
13
|
-
status: "approved",
|
|
14
|
-
parent: null,
|
|
15
|
-
},
|
|
17
|
+
filters: baseFilters,
|
|
16
18
|
},
|
|
17
19
|
});
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
const aggregateRating = (await resolveAggregateRating(req, result.reviews, result.count, baseFilters)) ??
|
|
21
|
+
null;
|
|
20
22
|
res.json({
|
|
21
23
|
...result,
|
|
22
24
|
aggregateRating,
|
|
23
25
|
});
|
|
24
26
|
};
|
|
25
27
|
exports.GET = GET;
|
|
26
|
-
|
|
28
|
+
async function resolveAggregateRating(req, currentPage, totalCount, filters) {
|
|
29
|
+
const currentAggregate = (0, schema_org_1.calculateAggregateRating)(currentPage);
|
|
30
|
+
const pageSize = currentPage.length;
|
|
31
|
+
const total = typeof totalCount === "number" ? totalCount : pageSize;
|
|
32
|
+
if (total <= pageSize || total === 0) {
|
|
33
|
+
return currentAggregate;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
37
|
+
const { data: allReviews = [] } = await query.graph({
|
|
38
|
+
entity: "review",
|
|
39
|
+
fields: ["rating"],
|
|
40
|
+
filters,
|
|
41
|
+
pagination: {
|
|
42
|
+
take: total,
|
|
43
|
+
},
|
|
44
|
+
});
|
|
45
|
+
const aggregate = (0, schema_org_1.calculateAggregateRating)(allReviews);
|
|
46
|
+
return aggregate ?? currentAggregate;
|
|
47
|
+
}
|
|
48
|
+
catch (error) {
|
|
49
|
+
console.error("Failed to load aggregate rating for reviews:", error);
|
|
50
|
+
return currentAggregate;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3Jldmlld3MvW3Byb2R1Y3RJZF0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EscURBQXNFO0FBQ3RFLHdGQUFxRjtBQUNyRiw2REFBd0U7QUFFakUsTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUsR0FBbUIsRUFBRSxFQUFFO0lBQ25FLE1BQU0sRUFBRSxTQUFTLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQ2pDLE1BQU0sV0FBVyxHQUFHO1FBQ2xCLFVBQVUsRUFBRSxTQUFTO1FBQ3JCLE1BQU0sRUFBRSxVQUFtQjtRQUMzQixNQUFNLEVBQUUsSUFBcUI7S0FDOUIsQ0FBQztJQUVGLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxNQUFNLElBQUEsdUNBQWtCLEdBQUUsQ0FBQyxHQUFHLENBQUM7UUFDaEQsS0FBSyxFQUFFO1lBQ0wsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXO1lBQzVCLE9BQU8sRUFBRSxXQUFXO1NBQ3JCO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsTUFBTSxlQUFlLEdBQ25CLENBQUMsTUFBTSxzQkFBc0IsQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBQzlFLElBQUksQ0FBQztJQUVQLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDUCxHQUFHLE1BQU07UUFDVCxlQUFlO0tBQ2hCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQztBQXZCVyxRQUFBLEdBQUcsT0F1QmQ7QUFFRixLQUFLLFVBQVUsc0JBQXNCLENBQ25DLEdBQWtCLEVBQ2xCLFdBQThDLEVBQzlDLFVBQW1CLEVBQ25CLE9BSUM7SUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUEscUNBQXdCLEVBQUMsV0FBVyxDQUFDLENBQUM7SUFDL0QsTUFBTSxRQUFRLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUNwQyxNQUFNLEtBQUssR0FBRyxPQUFPLFVBQVUsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBRXJFLElBQUksS0FBSyxJQUFJLFFBQVEsSUFBSSxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDckMsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakUsTUFBTSxFQUFFLElBQUksRUFBRSxVQUFVLEdBQUcsRUFBRSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2xELE1BQU0sRUFBRSxRQUFRO1lBQ2hCLE1BQU0sRUFBRSxDQUFDLFFBQVEsQ0FBQztZQUNsQixPQUFPO1lBQ1AsVUFBVSxFQUFFO2dCQUNWLElBQUksRUFBRSxLQUFLO2FBQ1o7U0FDRixDQUFDLENBQUM7UUFFSCxNQUFNLFNBQVMsR0FBRyxJQUFBLHFDQUF3QixFQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3ZELE9BQU8sU0FBUyxJQUFJLGdCQUFnQixDQUFDO0lBQ3ZDLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEtBQUssQ0FBQyw4Q0FBOEMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNyRSxPQUFPLGdCQUFnQixDQUFDO0lBQzFCLENBQUM7QUFDSCxDQUFDIn0=
|