@lodashventure/medusa-review 0.0.1
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.
- package/.medusa/server/src/admin/index.js +1633 -0
- package/.medusa/server/src/admin/index.mjs +1631 -0
- package/.medusa/server/src/admin/style.css +75 -0
- package/.medusa/server/src/api/admin/reviews/route.js +35 -0
- package/.medusa/server/src/api/admin/reviews/status/route.js +21 -0
- package/.medusa/server/src/api/middlewares.js +77 -0
- package/.medusa/server/src/api/store/reviews/[productId]/route.js +20 -0
- package/.medusa/server/src/api/store/reviews/[productId]/users/route.js +28 -0
- package/.medusa/server/src/api/store/reviews/route.js +57 -0
- package/.medusa/server/src/links/review-product.js +16 -0
- package/.medusa/server/src/modules/product-review/index.js +13 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20250514002111.js +16 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20250514010337.js +17 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20250514020039.js +14 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20250516011714.js +18 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20250516015055.js +16 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20250516022918.js +14 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20250517112618.js +14 -0
- package/.medusa/server/src/modules/product-review/models/review-media.js +18 -0
- package/.medusa/server/src/modules/product-review/models/review.js +40 -0
- package/.medusa/server/src/modules/product-review/service.js +15 -0
- package/.medusa/server/src/workflows/review/createReviewWorkflow.js +60 -0
- package/.medusa/server/src/workflows/review/getReviewsWorkflow.js +47 -0
- package/.medusa/server/src/workflows/review/updateReviewWorkflow.js +33 -0
- package/README.md +28 -0
- package/package.json +83 -0
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getReviewsWorkflow = exports.GetReviewsSchema = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const framework_1 = require("@medusajs/framework");
|
|
6
|
+
const workflows_sdk_2 = require("@medusajs/framework/workflows-sdk");
|
|
7
|
+
const validators_1 = require("@medusajs/medusa/api/utils/validators");
|
|
8
|
+
exports.GetReviewsSchema = (0, validators_1.createFindParams)({
|
|
9
|
+
order: "-created_at",
|
|
10
|
+
});
|
|
11
|
+
const getReviewsStep = (0, workflows_sdk_2.createStep)("get-reviews-step", async (input) => {
|
|
12
|
+
const query = framework_1.container.resolve("query");
|
|
13
|
+
const { data: reviews, metadata: { count, take, skip } = {
|
|
14
|
+
count: 0,
|
|
15
|
+
take: 20,
|
|
16
|
+
skip: 0,
|
|
17
|
+
}, } = await query.graph({
|
|
18
|
+
entity: "review",
|
|
19
|
+
...input.queryConfig,
|
|
20
|
+
fields: [
|
|
21
|
+
"*",
|
|
22
|
+
"product.title",
|
|
23
|
+
"product.id",
|
|
24
|
+
"medias.*",
|
|
25
|
+
"children.*",
|
|
26
|
+
"children.medias.*",
|
|
27
|
+
],
|
|
28
|
+
filters: input.filters,
|
|
29
|
+
});
|
|
30
|
+
const reviewWithSortedChildren = reviews.map((review) => {
|
|
31
|
+
return {
|
|
32
|
+
...review,
|
|
33
|
+
children: review.children?.sort((a, b) => new Date(a.created_at).getTime() - new Date(b.created_at).getTime()),
|
|
34
|
+
};
|
|
35
|
+
});
|
|
36
|
+
return new workflows_sdk_2.StepResponse({
|
|
37
|
+
reviews: reviewWithSortedChildren,
|
|
38
|
+
count,
|
|
39
|
+
limit: take,
|
|
40
|
+
offset: skip,
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
exports.getReviewsWorkflow = (0, workflows_sdk_1.createWorkflow)("get-reviews", (input) => {
|
|
44
|
+
const reviews = getReviewsStep(input);
|
|
45
|
+
return new workflows_sdk_1.WorkflowResponse(reviews);
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0UmV2aWV3c1dvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL3dvcmtmbG93cy9yZXZpZXcvZ2V0UmV2aWV3c1dvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUcyQztBQUUzQyxtREFBK0Q7QUFDL0QscUVBQTZFO0FBQzdFLHNFQUF5RTtBQUU1RCxRQUFBLGdCQUFnQixHQUFHLElBQUEsNkJBQWdCLEVBQUM7SUFDL0MsS0FBSyxFQUFFLGFBQWE7Q0FDckIsQ0FBQyxDQUFDO0FBV0gsTUFBTSxjQUFjLEdBQUcsSUFBQSwwQkFBVSxFQUMvQixrQkFBa0IsRUFDbEIsS0FBSyxFQUFFLEtBQXNCLEVBQUUsRUFBRTtJQUMvQixNQUFNLEtBQUssR0FBRyxxQkFBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUV6QyxNQUFNLEVBQ0osSUFBSSxFQUFFLE9BQU8sRUFDYixRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxHQUFHO1FBQ2hDLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxFQUFFLEVBQUU7UUFDUixJQUFJLEVBQUUsQ0FBQztLQUNSLEdBQ0YsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDcEIsTUFBTSxFQUFFLFFBQVE7UUFDaEIsR0FBRyxLQUFLLENBQUMsV0FBVztRQUNwQixNQUFNLEVBQUU7WUFDTixHQUFHO1lBQ0gsZUFBZTtZQUNmLFlBQVk7WUFDWixVQUFVO1lBQ1YsWUFBWTtZQUNaLG1CQUFtQjtTQUNwQjtRQUNELE9BQU8sRUFBRSxLQUFLLENBQUMsT0FBTztLQUN2QixDQUFDLENBQUM7SUFFSCxNQUFNLHdCQUF3QixHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtRQUN0RCxPQUFPO1lBQ0wsR0FBRyxNQUFNO1lBQ1QsUUFBUSxFQUFFLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUM3QixDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUNQLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxFQUFFLENBQ3RFO1NBQ0YsQ0FBQztJQUNKLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxJQUFJLDRCQUFZLENBQUM7UUFDdEIsT0FBTyxFQUFFLHdCQUF3QjtRQUNqQyxLQUFLO1FBQ0wsS0FBSyxFQUFFLElBQUk7UUFDWCxNQUFNLEVBQUUsSUFBSTtLQUNiLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FDRixDQUFDO0FBRVcsUUFBQSxrQkFBa0IsR0FBRyxJQUFBLDhCQUFjLEVBQzlDLGFBQWEsRUFDYixDQUFDLEtBQXNCLEVBQUUsRUFBRTtJQUN6QixNQUFNLE9BQU8sR0FBRyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFdEMsT0FBTyxJQUFJLGdDQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ3ZDLENBQUMsQ0FDRixDQUFDIn0=
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.updateReviewWorkflow = void 0;
|
|
4
|
+
const workflows_sdk_1 = require("@medusajs/framework/workflows-sdk");
|
|
5
|
+
const workflows_sdk_2 = require("@medusajs/framework/workflows-sdk");
|
|
6
|
+
const product_review_1 = require("../../modules/product-review");
|
|
7
|
+
const updateReviewsStep = (0, workflows_sdk_2.createStep)("update-review-step", async (input, { container }) => {
|
|
8
|
+
const reviewModuleService = container.resolve(product_review_1.PRODUCT_REVIEW_MODULE);
|
|
9
|
+
// Get original review before update
|
|
10
|
+
const originalReviews = await reviewModuleService.listReviews({
|
|
11
|
+
id: input.map((review) => review.id),
|
|
12
|
+
});
|
|
13
|
+
const reviews = await reviewModuleService.updateReviews(input);
|
|
14
|
+
return new workflows_sdk_2.StepResponse(reviews, originalReviews);
|
|
15
|
+
}, async (originalData, { container }) => {
|
|
16
|
+
if (!originalData) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
const reviewModuleService = container.resolve(product_review_1.PRODUCT_REVIEW_MODULE);
|
|
20
|
+
const updatePayload = originalData.map((review) => ({
|
|
21
|
+
id: review.id,
|
|
22
|
+
status: review.status,
|
|
23
|
+
}));
|
|
24
|
+
// Restore original review status
|
|
25
|
+
await reviewModuleService.updateReviews(updatePayload);
|
|
26
|
+
});
|
|
27
|
+
exports.updateReviewWorkflow = (0, workflows_sdk_1.createWorkflow)("update-review", (input) => {
|
|
28
|
+
const reviews = updateReviewsStep(input);
|
|
29
|
+
return new workflows_sdk_1.WorkflowResponse({
|
|
30
|
+
reviews,
|
|
31
|
+
});
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkYXRlUmV2aWV3V29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvd29ya2Zsb3dzL3Jldmlldy91cGRhdGVSZXZpZXdXb3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxxRUFHMkM7QUFPM0MscUVBQTZFO0FBQzdFLGlFQUFxRTtBQVFyRSxNQUFNLGlCQUFpQixHQUFHLElBQUEsMEJBQVUsRUFDbEMsb0JBQW9CLEVBQ3BCLEtBQUssRUFBRSxLQUE2QixFQUFFLEVBQUUsU0FBUyxFQUFFLEVBQUUsRUFBRTtJQUNyRCxNQUFNLG1CQUFtQixHQUErQixTQUFTLENBQUMsT0FBTyxDQUN2RSxzQ0FBcUIsQ0FDdEIsQ0FBQztJQUVGLG9DQUFvQztJQUNwQyxNQUFNLGVBQWUsR0FBRyxNQUFNLG1CQUFtQixDQUFDLFdBQVcsQ0FBQztRQUM1RCxFQUFFLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztLQUNyQyxDQUFDLENBQUM7SUFFSCxNQUFNLE9BQU8sR0FBRyxNQUFNLG1CQUFtQixDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUUvRCxPQUFPLElBQUksNEJBQVksQ0FBQyxPQUFPLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFDcEQsQ0FBQyxFQUNELEtBQUssRUFBRSxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFO0lBQ3BDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNsQixPQUFPO0lBQ1QsQ0FBQztJQUVELE1BQU0sbUJBQW1CLEdBQStCLFNBQVMsQ0FBQyxPQUFPLENBQ3ZFLHNDQUFxQixDQUN0QixDQUFDO0lBRUYsTUFBTSxhQUFhLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxFQUFFLEVBQUUsTUFBTSxDQUFDLEVBQUU7UUFDYixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07S0FDdEIsQ0FBQyxDQUFDLENBQUM7SUFFSixpQ0FBaUM7SUFDakMsTUFBTSxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUM7QUFDekQsQ0FBQyxDQUNGLENBQUM7QUFFVyxRQUFBLG9CQUFvQixHQUFHLElBQUEsOEJBQWMsRUFDaEQsZUFBZSxFQUNmLENBQUMsS0FBd0IsRUFBRSxFQUFFO0lBQzNCLE1BQU0sT0FBTyxHQUFHLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXpDLE9BQU8sSUFBSSxnQ0FBZ0IsQ0FBQztRQUMxQixPQUFPO0tBQ1IsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyxDQUNGLENBQUMifQ==
|
package/README.md
ADDED
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
# Medusa Plugin review
|
|
2
|
+
|
|
3
|
+
## How to install
|
|
4
|
+
1. add the plugin to your medusa backend
|
|
5
|
+
```bash
|
|
6
|
+
yarn add medusa-review
|
|
7
|
+
```
|
|
8
|
+
2. configure your medusa backend `medusa-config.ts`
|
|
9
|
+
```ts
|
|
10
|
+
module.exports = defineConfig({
|
|
11
|
+
// ... rest of the config
|
|
12
|
+
plugins: [
|
|
13
|
+
// ... rest of the plugins
|
|
14
|
+
{
|
|
15
|
+
resolve: "medusa-review",
|
|
16
|
+
options: {},
|
|
17
|
+
},
|
|
18
|
+
],
|
|
19
|
+
});
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
3. run the migrations in your medusa core backend
|
|
23
|
+
```bash
|
|
24
|
+
yarn medusa db:migrate
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
4. all done now just start your medusa backend
|
|
28
|
+
`yarn dev` `yarn start` or whatever you use to start your backend
|
package/package.json
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lodashventure/medusa-review",
|
|
3
|
+
"version": "0.0.1",
|
|
4
|
+
"description": "A starter for Medusa plugins.",
|
|
5
|
+
"author": "Medusa (https://medusajs.com)",
|
|
6
|
+
"license": "MIT",
|
|
7
|
+
"files": [
|
|
8
|
+
".medusa/server"
|
|
9
|
+
],
|
|
10
|
+
"exports": {
|
|
11
|
+
"./package.json": "./package.json",
|
|
12
|
+
"./workflows": "./.medusa/server/src/workflows/index.js",
|
|
13
|
+
"./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
14
|
+
"./modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
15
|
+
"./providers/*": "./.medusa/server/src/providers/*/index.js",
|
|
16
|
+
"./admin": "./.medusa/server/src/admin/index.mjs",
|
|
17
|
+
"./*": "./.medusa/server/src/*.js"
|
|
18
|
+
},
|
|
19
|
+
"keywords": [
|
|
20
|
+
"medusa",
|
|
21
|
+
"plugin",
|
|
22
|
+
"medusa-plugin-other",
|
|
23
|
+
"medusa-plugin",
|
|
24
|
+
"medusa-v2"
|
|
25
|
+
],
|
|
26
|
+
"scripts": {
|
|
27
|
+
"build": "medusa plugin:build",
|
|
28
|
+
"dev": "medusa plugin:develop",
|
|
29
|
+
"prepublishOnly": "medusa plugin:build"
|
|
30
|
+
},
|
|
31
|
+
"devDependencies": {
|
|
32
|
+
"@medusajs/admin-sdk": "2.10.0",
|
|
33
|
+
"@medusajs/cli": "2.10.0",
|
|
34
|
+
"@medusajs/framework": "2.10.0",
|
|
35
|
+
"@medusajs/icons": "^2.10.0",
|
|
36
|
+
"@medusajs/medusa": "2.10.0",
|
|
37
|
+
"@medusajs/test-utils": "2.10.0",
|
|
38
|
+
"@medusajs/ui": "4.0.4",
|
|
39
|
+
"@mikro-orm/cli": "6.4.3",
|
|
40
|
+
"@mikro-orm/core": "6.4.3",
|
|
41
|
+
"@mikro-orm/knex": "6.4.3",
|
|
42
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
43
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
44
|
+
"@swc/core": "1.5.7",
|
|
45
|
+
"@types/multer": "^1.4.12",
|
|
46
|
+
"@types/node": "^20.0.0",
|
|
47
|
+
"@types/react": "^18.3.2",
|
|
48
|
+
"@types/react-dom": "^18.2.25",
|
|
49
|
+
"awilix": "^8.0.1",
|
|
50
|
+
"pg": "^8.13.0",
|
|
51
|
+
"prop-types": "^15.8.1",
|
|
52
|
+
"react": "^18.2.0",
|
|
53
|
+
"react-dom": "^18.2.0",
|
|
54
|
+
"ts-node": "^10.9.2",
|
|
55
|
+
"typescript": "^5.6.2",
|
|
56
|
+
"vite": "^5.2.11",
|
|
57
|
+
"yalc": "^1.0.0-pre.53"
|
|
58
|
+
},
|
|
59
|
+
"peerDependencies": {
|
|
60
|
+
"@medusajs/admin-sdk": "2.10.0",
|
|
61
|
+
"@medusajs/cli": "2.10.0",
|
|
62
|
+
"@medusajs/framework": "2.10.0",
|
|
63
|
+
"@medusajs/icons": "^2.10.0",
|
|
64
|
+
"@medusajs/medusa": "2.10.0",
|
|
65
|
+
"@medusajs/test-utils": "2.10.0",
|
|
66
|
+
"@medusajs/ui": "4.0.3",
|
|
67
|
+
"@tanstack/react-query": "*",
|
|
68
|
+
"@mikro-orm/cli": "6.4.3",
|
|
69
|
+
"@mikro-orm/core": "6.4.3",
|
|
70
|
+
"@mikro-orm/knex": "6.4.3",
|
|
71
|
+
"@mikro-orm/migrations": "6.4.3",
|
|
72
|
+
"@mikro-orm/postgresql": "6.4.3",
|
|
73
|
+
"awilix": "^8.0.1",
|
|
74
|
+
"pg": "^8.13.0"
|
|
75
|
+
},
|
|
76
|
+
"engines": {
|
|
77
|
+
"node": ">=20"
|
|
78
|
+
},
|
|
79
|
+
"dependencies": {
|
|
80
|
+
"multer": "^1.4.5-lts.2",
|
|
81
|
+
"rc-mentions": "^2.20.0"
|
|
82
|
+
}
|
|
83
|
+
}
|