@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.
Files changed (26) hide show
  1. package/.medusa/server/src/admin/index.js +1633 -0
  2. package/.medusa/server/src/admin/index.mjs +1631 -0
  3. package/.medusa/server/src/admin/style.css +75 -0
  4. package/.medusa/server/src/api/admin/reviews/route.js +35 -0
  5. package/.medusa/server/src/api/admin/reviews/status/route.js +21 -0
  6. package/.medusa/server/src/api/middlewares.js +77 -0
  7. package/.medusa/server/src/api/store/reviews/[productId]/route.js +20 -0
  8. package/.medusa/server/src/api/store/reviews/[productId]/users/route.js +28 -0
  9. package/.medusa/server/src/api/store/reviews/route.js +57 -0
  10. package/.medusa/server/src/links/review-product.js +16 -0
  11. package/.medusa/server/src/modules/product-review/index.js +13 -0
  12. package/.medusa/server/src/modules/product-review/migrations/Migration20250514002111.js +16 -0
  13. package/.medusa/server/src/modules/product-review/migrations/Migration20250514010337.js +17 -0
  14. package/.medusa/server/src/modules/product-review/migrations/Migration20250514020039.js +14 -0
  15. package/.medusa/server/src/modules/product-review/migrations/Migration20250516011714.js +18 -0
  16. package/.medusa/server/src/modules/product-review/migrations/Migration20250516015055.js +16 -0
  17. package/.medusa/server/src/modules/product-review/migrations/Migration20250516022918.js +14 -0
  18. package/.medusa/server/src/modules/product-review/migrations/Migration20250517112618.js +14 -0
  19. package/.medusa/server/src/modules/product-review/models/review-media.js +18 -0
  20. package/.medusa/server/src/modules/product-review/models/review.js +40 -0
  21. package/.medusa/server/src/modules/product-review/service.js +15 -0
  22. package/.medusa/server/src/workflows/review/createReviewWorkflow.js +60 -0
  23. package/.medusa/server/src/workflows/review/getReviewsWorkflow.js +47 -0
  24. package/.medusa/server/src/workflows/review/updateReviewWorkflow.js +33 -0
  25. package/README.md +28 -0
  26. 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
+ }