@alphabite/medusa-wishlist 0.2.0 β 0.3.0
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/api/middlewares.js +20 -44
- package/.medusa/server/src/api/store/wishlists/[id]/add-item/route.js +6 -3
- package/.medusa/server/src/api/store/wishlists/[id]/items/[item_id]/route.js +1 -1
- package/.medusa/server/src/api/store/wishlists/[id]/items/route.js +5 -2
- package/.medusa/server/src/api/store/wishlists/[id]/route.js +20 -7
- package/.medusa/server/src/api/store/wishlists/[id]/validators.js +8 -0
- package/.medusa/server/src/api/store/wishlists/route.js +7 -16
- package/.medusa/server/src/api/store/wishlists/total-items-count/route.js +28 -0
- package/.medusa/server/src/api/store/wishlists/total-items-count/validators.js +8 -0
- package/.medusa/server/src/api/store/wishlists/validators.js +5 -2
- package/.medusa/server/src/modules/wishlist/service.js +14 -38
- package/.medusa/server/src/utils/utils.js +15 -3
- package/README.md +153 -48
- package/package.json +9 -1
|
@@ -4,6 +4,9 @@ const http_1 = require("@medusajs/framework/http");
|
|
|
4
4
|
const validators_1 = require("@medusajs/medusa/api/utils/validators");
|
|
5
5
|
const validators_2 = require("./store/wishlists/validators");
|
|
6
6
|
const validators_3 = require("./store/wishlists/[id]/add-item/validators");
|
|
7
|
+
const validators_4 = require("./store/wishlists/total-items-count/validators");
|
|
8
|
+
const validators_5 = require("./store/wishlists/[id]/validators");
|
|
9
|
+
const utils_1 = require("../utils/utils");
|
|
7
10
|
exports.default = (0, http_1.defineMiddlewares)({
|
|
8
11
|
routes: [
|
|
9
12
|
//----List Wishlists-----//
|
|
@@ -12,18 +15,23 @@ exports.default = (0, http_1.defineMiddlewares)({
|
|
|
12
15
|
methods: ["GET"],
|
|
13
16
|
middlewares: [
|
|
14
17
|
(0, http_1.authenticate)("customer", ["bearer"]),
|
|
15
|
-
(0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)(), {
|
|
16
|
-
defaults: [
|
|
17
|
-
// "items.*",
|
|
18
|
-
// "items.product_variant.*",
|
|
19
|
-
// "items.product_variant.prices.*",
|
|
20
|
-
// "items.product_variant.product.thumbnail",
|
|
21
|
-
// "items.product_variant.product.id",
|
|
22
|
-
],
|
|
18
|
+
(0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)().extend(validators_2.ListWishlistsQuerySchema.shape), {
|
|
23
19
|
isList: true,
|
|
24
20
|
}),
|
|
25
21
|
],
|
|
26
22
|
},
|
|
23
|
+
//----Total Items Count-----//
|
|
24
|
+
{
|
|
25
|
+
matcher: "/store/wishlists/total-items-count",
|
|
26
|
+
methods: ["GET"],
|
|
27
|
+
middlewares: [
|
|
28
|
+
(0, http_1.validateAndTransformQuery)(validators_4.TotalItemsCountInputSchema, {}),
|
|
29
|
+
(0, http_1.authenticate)("customer", ["bearer"], {
|
|
30
|
+
allowUnauthenticated: true,
|
|
31
|
+
allowUnregistered: true,
|
|
32
|
+
}),
|
|
33
|
+
],
|
|
34
|
+
},
|
|
27
35
|
//----Retrieve Wishlist-----//
|
|
28
36
|
{
|
|
29
37
|
matcher: "/store/wishlists/:id",
|
|
@@ -33,15 +41,7 @@ exports.default = (0, http_1.defineMiddlewares)({
|
|
|
33
41
|
allowUnregistered: true,
|
|
34
42
|
allowUnauthenticated: true,
|
|
35
43
|
}),
|
|
36
|
-
(0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)(), {
|
|
37
|
-
defaults: [
|
|
38
|
-
"items.*",
|
|
39
|
-
"items.product_variant.*",
|
|
40
|
-
"items.product_variant.prices.*",
|
|
41
|
-
"items.product_variant.product.thumbnail",
|
|
42
|
-
"items.product_variant.product.id",
|
|
43
|
-
],
|
|
44
|
-
}),
|
|
44
|
+
(0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)().extend(validators_5.RetrieveWishlistQuerySchema.shape), {}),
|
|
45
45
|
],
|
|
46
46
|
},
|
|
47
47
|
//----Create wishlist-----//
|
|
@@ -87,19 +87,7 @@ exports.default = (0, http_1.defineMiddlewares)({
|
|
|
87
87
|
allowUnauthenticated: true,
|
|
88
88
|
}),
|
|
89
89
|
(0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)(), {
|
|
90
|
-
defaults:
|
|
91
|
-
"id",
|
|
92
|
-
"product_id",
|
|
93
|
-
"wishlist_id",
|
|
94
|
-
"created_at",
|
|
95
|
-
"wishlist.customer_id",
|
|
96
|
-
"updated_at",
|
|
97
|
-
"deleted_at",
|
|
98
|
-
"product_variant.*",
|
|
99
|
-
"product_variant.prices.*",
|
|
100
|
-
"product_variant.calculated_price",
|
|
101
|
-
"product_variant.product.thumbnail",
|
|
102
|
-
],
|
|
90
|
+
defaults: utils_1.defaultItemsFields,
|
|
103
91
|
isList: true,
|
|
104
92
|
}),
|
|
105
93
|
],
|
|
@@ -115,19 +103,7 @@ exports.default = (0, http_1.defineMiddlewares)({
|
|
|
115
103
|
}),
|
|
116
104
|
(0, http_1.validateAndTransformBody)(validators_3.AddItemToWishlistInputSchema),
|
|
117
105
|
(0, http_1.validateAndTransformQuery)((0, validators_1.createFindParams)(), {
|
|
118
|
-
defaults:
|
|
119
|
-
"id",
|
|
120
|
-
"product_variant_id",
|
|
121
|
-
"wishlist_id",
|
|
122
|
-
"created_at",
|
|
123
|
-
"updated_at",
|
|
124
|
-
"deleted_at",
|
|
125
|
-
"product_variant.*",
|
|
126
|
-
"product_variant.prices.*",
|
|
127
|
-
"product_variant.calculated_price",
|
|
128
|
-
"product_variant.product.thumbnail",
|
|
129
|
-
"product_variant.product.id",
|
|
130
|
-
],
|
|
106
|
+
defaults: utils_1.defaultItemsFields,
|
|
131
107
|
}),
|
|
132
108
|
],
|
|
133
109
|
},
|
|
@@ -144,4 +120,4 @@ exports.default = (0, http_1.defineMiddlewares)({
|
|
|
144
120
|
},
|
|
145
121
|
],
|
|
146
122
|
});
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlkZGxld2FyZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvYXBpL21pZGRsZXdhcmVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsbURBS2tDO0FBQ2xDLHNFQUF5RTtBQUN6RSw2REFJc0M7QUFDdEMsMkVBQTBGO0FBQzFGLCtFQUE0RjtBQUM1RixrRUFBZ0Y7QUFDaEYsMENBQW9EO0FBRXBELGtCQUFlLElBQUEsd0JBQWlCLEVBQUM7SUFDL0IsTUFBTSxFQUFFO1FBQ04sMkJBQTJCO1FBQzNCO1lBQ0UsT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDaEIsV0FBVyxFQUFFO2dCQUNYLElBQUEsbUJBQVksRUFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEMsSUFBQSxnQ0FBeUIsRUFDdkIsSUFBQSw2QkFBZ0IsR0FBRSxDQUFDLE1BQU0sQ0FBQyxxQ0FBd0IsQ0FBQyxLQUFLLENBQUMsRUFDekQ7b0JBQ0UsTUFBTSxFQUFFLElBQUk7aUJBQ2IsQ0FDRjthQUNGO1NBQ0Y7UUFDRCw4QkFBOEI7UUFDOUI7WUFDRSxPQUFPLEVBQUUsb0NBQW9DO1lBQzdDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixXQUFXLEVBQUU7Z0JBQ1gsSUFBQSxnQ0FBeUIsRUFBQyx1Q0FBMEIsRUFBRSxFQUFFLENBQUM7Z0JBQ3pELElBQUEsbUJBQVksRUFBQyxVQUFVLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRTtvQkFDbkMsb0JBQW9CLEVBQUUsSUFBSTtvQkFDMUIsaUJBQWlCLEVBQUUsSUFBSTtpQkFDeEIsQ0FBQzthQUNIO1NBQ0Y7UUFDRCw4QkFBOEI7UUFDOUI7WUFDRSxPQUFPLEVBQUUsc0JBQXNCO1lBQy9CLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQztZQUNoQixXQUFXLEVBQUU7Z0JBQ1gsSUFBQSxtQkFBWSxFQUFDLFVBQVUsRUFB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
|
|
@@ -27,7 +27,7 @@ const POST = async (req, res) => {
|
|
|
27
27
|
wishlist[0]?.customer_id !== customer_id) {
|
|
28
28
|
throw new utils_1.MedusaError(utils_1.MedusaError.Types.UNAUTHORIZED, "You are not authorized to add items to this wishlist");
|
|
29
29
|
}
|
|
30
|
-
console.log("wishlist", wishlist);
|
|
30
|
+
// console.log("wishlist", wishlist);
|
|
31
31
|
const created_item = await wishlistService.createWishlistItems({
|
|
32
32
|
product_variant_id,
|
|
33
33
|
wishlist_id: id,
|
|
@@ -38,7 +38,10 @@ const POST = async (req, res) => {
|
|
|
38
38
|
id: created_item.id,
|
|
39
39
|
},
|
|
40
40
|
...req.queryConfig,
|
|
41
|
-
fields: [
|
|
41
|
+
fields: [
|
|
42
|
+
...(req.queryConfig.fields || []),
|
|
43
|
+
...(options?.wishlistItemsFields || []),
|
|
44
|
+
],
|
|
42
45
|
});
|
|
43
46
|
return res.status(201).json(enriched_wishlist_item[0]);
|
|
44
47
|
}
|
|
@@ -48,4 +51,4 @@ const POST = async (req, res) => {
|
|
|
48
51
|
}
|
|
49
52
|
};
|
|
50
53
|
exports.POST = POST;
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL2FkZC1pdGVtL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQU1BLDhEQUFrRTtBQUVsRSxxREFBd0Q7QUFFakQsTUFBTSxJQUFJLEdBQUcsS0FBSyxFQUN2QixHQUF1RCxFQUN2RCxHQUFpQyxFQUNqQyxFQUFFO0lBQ0YsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQztJQUN4QyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMxQixNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztJQUVoRCxNQUFNLGVBQWUsR0FDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXdCLDBCQUFlLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBRXpDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixpQ0FBaUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMzQyxNQUFNLEVBQUUsVUFBVTtZQUNsQixPQUFPLEVBQUUsRUFBRSxFQUFFLEVBQUU7WUFDZixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHNEQUFzRCxDQUN2RCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsV0FBVztZQUNYLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXO1lBQ3hCLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEtBQUssV0FBVyxFQUN4QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsc0RBQXNELENBQ3ZELENBQUM7UUFDSixDQUFDO1FBRUQscUNBQXFDO1FBRXJDLE1BQU0sWUFBWSxHQUFHLE1BQU0sZUFBZSxDQUFDLG1CQUFtQixDQUFDO1lBQzdELGtCQUFrQjtZQUNsQixXQUFXLEVBQUUsRUFBRTtTQUNoQixDQUFDLENBQUM7UUFFSCxNQUFNLEVBQUUsSUFBSSxFQUFFLHNCQUFzQixFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ3pELE1BQU0sRUFBRSxlQUFlO1lBQ3ZCLE9BQU8sRUFBRTtnQkFDUCxFQUFFLEVBQUUsWUFBWSxDQUFDLEVBQUU7YUFDcEI7WUFDRCxHQUFHLEdBQUcsQ0FBQyxXQUFXO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUNqQyxHQUFHLENBQUMsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEVBQUUsQ0FBQzthQUN4QztTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsNkJBQTZCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFbEQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDLENBQUM7QUF2RVcsUUFBQSxJQUFJLFFBdUVmIn0=
|
|
@@ -36,4 +36,4 @@ const DELETE = async (req, res) => {
|
|
|
36
36
|
}
|
|
37
37
|
};
|
|
38
38
|
exports.DELETE = DELETE;
|
|
39
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL2l0ZW1zL1tpdGVtX2lkXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFLQSxpRUFBcUU7QUFDckUscURBQXdEO0FBT2pELE1BQU0sTUFBTSxHQUFHLEtBQUssRUFDekIsR0FBK0IsRUFDL0IsR0FBNkMsRUFDN0MsRUFBRTtJQUNGLE1BQU0sRUFBRSxPQUFPLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUM7SUFDaEQsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUM7SUFFaEQsTUFBTSxlQUFlLEdBQ25CLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBZSxDQUFDLENBQUM7SUFDNUQsTUFBTSxPQUFPLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztJQUV6QyxJQUFJLENBQUMsT0FBTyxDQUFDLGtCQUFrQixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDaEQsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsaUNBQWlDLENBQ2xDLENBQUM7SUFDSixDQUFDO0lBRUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFekMsTUFBTSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDM0MsTUFBTSxFQUFFLFVBQVU7WUFDbEIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUM1QixNQUFNLEVBQUUsQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO1NBQzlCLENBQUMsQ0FBQztRQUVILElBQUksUUFBUSxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzdDLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLDJEQUEyRCxDQUM1RCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQ0UsV0FBVztZQUNYLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXO1lBQ3hCLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxXQUFXLEtBQUssV0FBVyxFQUN4QyxDQUFDO1lBQ0QsTUFBTSxJQUFJLG1CQUFXLENBQ25CLG1CQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksRUFDOUIsMkRBQTJELENBQzVELENBQUM7UUFDSixDQUFDO1FBRUQsMkJBQTJCO1FBQzNCLE1BQU0sZUFBZSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRW5ELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsMkJBQTJCLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFaEQsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7QUFDSCxDQUFDLENBQUM7QUF0RFcsUUFBQSxNQUFNLFVBc0RqQiJ9
|
|
@@ -20,7 +20,10 @@ const GET = async (req, res) => {
|
|
|
20
20
|
wishlist_id: id,
|
|
21
21
|
},
|
|
22
22
|
...req.queryConfig,
|
|
23
|
-
fields: [
|
|
23
|
+
fields: [
|
|
24
|
+
...(req.queryConfig.fields || []),
|
|
25
|
+
...(options?.wishlistItemsFields || []),
|
|
26
|
+
],
|
|
24
27
|
});
|
|
25
28
|
if (customer_id && wishlist_items[0].wishlist.customer_id !== customer_id) {
|
|
26
29
|
throw new utils_2.MedusaError(utils_2.MedusaErrorTypes.UNAUTHORIZED, "You are not authorized to access this wishlist items");
|
|
@@ -38,4 +41,4 @@ const GET = async (req, res) => {
|
|
|
38
41
|
}
|
|
39
42
|
};
|
|
40
43
|
exports.GET = GET;
|
|
41
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
44
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL2l0ZW1zL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUtBLHNEQUEyRDtBQUUzRCw4REFBa0U7QUFDbEUscURBQTBFO0FBRW5FLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFDdEIsR0FBK0IsRUFDL0IsR0FBa0QsRUFDbEQsRUFBRTtJQUNGLE1BQU0sRUFBRSxFQUFFLEVBQUUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzFCLE1BQU0sV0FBVyxHQUFHLEdBQUcsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO0lBRWhELE1BQU0sZUFBZSxHQUNuQixHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBd0IsMEJBQWUsQ0FBQyxDQUFDO0lBQzVELE1BQU0sT0FBTyxHQUFHLGVBQWUsQ0FBQyxRQUFRLENBQUM7SUFFekMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2hELE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLGlDQUFpQyxDQUNsQyxDQUFDO0lBQ0osQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztZQUMzRCxNQUFNLEVBQUUsZUFBZTtZQUN2QixPQUFPLEVBQUU7Z0JBQ1AsV0FBVyxFQUFFLEVBQUU7YUFDaEI7WUFDRCxHQUFHLEdBQUcsQ0FBQyxXQUFXO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLElBQUksRUFBRSxDQUFDO2dCQUNqQyxHQUFHLENBQUMsT0FBTyxFQUFFLG1CQUFtQixJQUFJLEVBQUUsQ0FBQzthQUN4QztTQUNGLENBQUMsQ0FBQztRQUVILElBQUksV0FBVyxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsV0FBVyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQzFFLE1BQU0sSUFBSSxtQkFBVyxDQUNuQix3QkFBZ0IsQ0FBQyxZQUFZLEVBQzdCLHNEQUFzRCxDQUN2RCxDQUFDO1FBQ0osQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsSUFBSSxFQUFFLGNBQWMsQ0FBQyxHQUFHLENBQ3RCLENBQUMsRUFBRSxRQUFRLEVBQUUsR0FBRyxhQUFhLEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxDQUNsRDtZQUNELElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUM7WUFDekIsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQztZQUN6QixHQUFHLElBQUEscUJBQWEsRUFBQyxRQUFTLENBQUM7U0FDNUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUFDLE9BQU8sS0FBSyxFQUFFLENBQUM7UUFDZixPQUFPLENBQUMsR0FBRyxDQUFDLGdDQUFnQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXJELE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztJQUMvQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBckRXLFFBQUEsR0FBRyxPQXFEZCJ9
|
|
@@ -5,10 +5,12 @@ exports.PUT = PUT;
|
|
|
5
5
|
exports.DELETE = DELETE;
|
|
6
6
|
const utils_1 = require("@medusajs/framework/utils");
|
|
7
7
|
const wishlist_1 = require("../../../../modules/wishlist");
|
|
8
|
+
const utils_2 = require("../../../../utils/utils");
|
|
8
9
|
//-----Retrieves a specific wishlist by ID-----//
|
|
9
10
|
async function GET(req, res) {
|
|
10
11
|
const { id } = req.params;
|
|
11
12
|
const customer_id = req?.auth_context?.actor_id;
|
|
13
|
+
const { items_fields } = req.validatedQuery;
|
|
12
14
|
const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
|
|
13
15
|
const options = wishlistService._options;
|
|
14
16
|
if (!options.allowGuestWishlist && !customer_id) {
|
|
@@ -22,11 +24,7 @@ async function GET(req, res) {
|
|
|
22
24
|
id,
|
|
23
25
|
},
|
|
24
26
|
...req.queryConfig,
|
|
25
|
-
fields: [
|
|
26
|
-
"*",
|
|
27
|
-
...(req.queryConfig.fields || []),
|
|
28
|
-
...(options?.fields || []),
|
|
29
|
-
],
|
|
27
|
+
fields: ["*", ...(options?.wishlistFields || [])],
|
|
30
28
|
});
|
|
31
29
|
const wishlist = data?.[0];
|
|
32
30
|
if (!wishlist) {
|
|
@@ -35,7 +33,22 @@ async function GET(req, res) {
|
|
|
35
33
|
if (wishlist?.customer_id && wishlist?.customer_id !== customer_id) {
|
|
36
34
|
throw new utils_1.MedusaError(utils_1.MedusaErrorTypes.UNAUTHORIZED, "You are not authorized to access this wishlist");
|
|
37
35
|
}
|
|
38
|
-
|
|
36
|
+
const { data: items, metadata: items_metadata } = await query.graph({
|
|
37
|
+
entity: "wishlist_item",
|
|
38
|
+
filters: { wishlist_id: wishlist.id },
|
|
39
|
+
fields: [
|
|
40
|
+
...utils_2.defaultItemsFields,
|
|
41
|
+
...(options?.wishlistItemsFields || []),
|
|
42
|
+
...(items_fields || []),
|
|
43
|
+
],
|
|
44
|
+
pagination: {
|
|
45
|
+
take: options?.includeWishlistItemsTake || 5,
|
|
46
|
+
skip: 0,
|
|
47
|
+
},
|
|
48
|
+
});
|
|
49
|
+
return res
|
|
50
|
+
.status(200)
|
|
51
|
+
.json({ ...wishlist, items_count: items_metadata?.count, items });
|
|
39
52
|
}
|
|
40
53
|
catch (error) {
|
|
41
54
|
console.log("Error fetching wishlists:", error);
|
|
@@ -72,4 +85,4 @@ async function DELETE(req, res) {
|
|
|
72
85
|
return res.status(500).end();
|
|
73
86
|
}
|
|
74
87
|
}
|
|
75
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9baWRdL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBY0Esa0JBcUVDO0FBRUQsa0JBc0JDO0FBT0Qsd0JBb0JDO0FBaklELHFEQUEwRTtBQUkxRSwyREFBK0Q7QUFFL0QsbURBQTZEO0FBRTdELGlEQUFpRDtBQUMxQyxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUEyRCxFQUMzRCxHQUE2QjtJQUU3QixNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMxQixNQUFNLFdBQVcsR0FBRyxHQUFHLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQztJQUNoRCxNQUFNLEVBQUUsWUFBWSxFQUFFLEdBQUcsR0FBRyxDQUFDLGNBQWMsQ0FBQztJQUU1QyxNQUFNLGVBQWUsR0FDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXdCLDBCQUFlLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBRXpDLElBQUksQ0FBQyxPQUFPLENBQUMsa0JBQWtCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNoRCxNQUFNLElBQUksbUJBQVcsQ0FDbkIsbUJBQVcsQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUM5QixpQ0FBaUMsQ0FDbEMsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLENBQUM7UUFDSCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV6QyxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQ2pDLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRTtnQkFDUCxFQUFFO2FBQ0g7WUFDRCxHQUFHLEdBQUcsQ0FBQyxXQUFX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
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RetrieveWishlistQuerySchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.RetrieveWishlistQuerySchema = zod_1.z.object({
|
|
6
|
+
items_fields: zod_1.z.array(zod_1.z.string()).optional(),
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvd2lzaGxpc3RzL1tpZF0vdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSw2QkFBd0I7QUFFWCxRQUFBLDJCQUEyQixHQUFHLE9BQUMsQ0FBQyxNQUFNLENBQUM7SUFDbEQsWUFBWSxFQUFFLE9BQUMsQ0FBQyxLQUFLLENBQUMsT0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0NBQzdDLENBQUMsQ0FBQyJ9
|
|
@@ -9,6 +9,7 @@ async function GET(req, res) {
|
|
|
9
9
|
const customer_id = req.auth_context.actor_id;
|
|
10
10
|
const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
|
|
11
11
|
const options = wishlistService._options;
|
|
12
|
+
const { items_fields } = req.validatedQuery;
|
|
12
13
|
try {
|
|
13
14
|
const query = req.scope.resolve("query");
|
|
14
15
|
const { data, metadata } = await query.graph({
|
|
@@ -17,26 +18,15 @@ async function GET(req, res) {
|
|
|
17
18
|
...req.queryConfig,
|
|
18
19
|
fields: [
|
|
19
20
|
"*",
|
|
20
|
-
...(options?.
|
|
21
|
+
...(options?.wishlistFields || []),
|
|
21
22
|
...(options.includeWishlistItems ? req.queryConfig.fields : []),
|
|
22
23
|
],
|
|
23
24
|
});
|
|
24
25
|
const enriched_wishlist = await Promise.all(data.map(async (wishlist) => {
|
|
25
|
-
const { data: items } = await query.graph({
|
|
26
|
+
const { data: items, metadata } = await query.graph({
|
|
26
27
|
entity: "wishlist_item",
|
|
27
28
|
filters: { wishlist_id: wishlist.id },
|
|
28
|
-
fields: [
|
|
29
|
-
"id",
|
|
30
|
-
"product_id",
|
|
31
|
-
"wishlist_id",
|
|
32
|
-
"created_at",
|
|
33
|
-
"updated_at",
|
|
34
|
-
"deleted_at",
|
|
35
|
-
"product_variant.*",
|
|
36
|
-
"product_variant.prices.*",
|
|
37
|
-
"product_variant.calculated_price",
|
|
38
|
-
"product_variant.product.thumbnail",
|
|
39
|
-
],
|
|
29
|
+
fields: [...utils_1.defaultItemsFields, ...(items_fields || [])],
|
|
40
30
|
pagination: {
|
|
41
31
|
take: options?.includeWishlistItemsTake || 5,
|
|
42
32
|
skip: 0,
|
|
@@ -45,6 +35,7 @@ async function GET(req, res) {
|
|
|
45
35
|
return {
|
|
46
36
|
...wishlist,
|
|
47
37
|
items: items.length > 0 ? items : [],
|
|
38
|
+
items_count: metadata?.count,
|
|
48
39
|
};
|
|
49
40
|
}));
|
|
50
41
|
return res.status(200).json({
|
|
@@ -73,10 +64,10 @@ async function POST(req, res) {
|
|
|
73
64
|
...input,
|
|
74
65
|
...(customer_id && { customer_id }),
|
|
75
66
|
});
|
|
76
|
-
return res.status(201).json(wishlist);
|
|
67
|
+
return res.status(201).json({ ...wishlist, items_count: 0, items: [] });
|
|
77
68
|
}
|
|
78
69
|
catch (error) {
|
|
79
70
|
return res.status(500).end();
|
|
80
71
|
}
|
|
81
72
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
73
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVdBLGtCQXVEQztBQUlELG9CQTRCQztBQTNGRCx3REFBNEQ7QUFDNUQsZ0RBQXlFO0FBQ3pFLHFEQUF3RDtBQUVqRCxLQUFLLFVBQVUsR0FBRyxDQUN2QixHQUF3RCxFQUN4RCxHQUE4QztJQUU5QyxNQUFNLFdBQVcsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQztJQUM5QyxNQUFNLGVBQWUsR0FDbkIsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQXdCLDBCQUFlLENBQUMsQ0FBQztJQUM1RCxNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsUUFBUSxDQUFDO0lBQ3pDLE1BQU0sRUFBRSxZQUFZLEVBQUUsR0FBRyxHQUFHLENBQUMsY0FBYyxDQUFDO0lBRTVDLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXpDLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1lBQzNDLE1BQU0sRUFBRSxVQUFVO1lBQ2xCLE9BQU8sRUFBRSxFQUFFLFdBQVcsRUFBRTtZQUN4QixHQUFHLEdBQUcsQ0FBQyxXQUFXO1lBQ2xCLE1BQU0sRUFBRTtnQkFDTixHQUFHO2dCQUNILEdBQUcsQ0FBQyxPQUFPLEVBQUUsY0FBYyxJQUFJLEVBQUUsQ0FBQztnQkFDbEMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzthQUNoRTtTQUNGLENBQUMsQ0FBQztRQUVILE1BQU0saUJBQWlCLEdBQWUsTUFB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
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GET = GET;
|
|
4
|
+
const wishlist_1 = require("../../../../modules/wishlist");
|
|
5
|
+
async function GET(req, res) {
|
|
6
|
+
const { wishlist_id } = req.validatedQuery;
|
|
7
|
+
const customer_id = req?.auth_context?.actor_id;
|
|
8
|
+
if (!wishlist_id && !customer_id) {
|
|
9
|
+
return res.status(200).json({
|
|
10
|
+
total_items_count: 0,
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
const wishlistService = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
|
|
14
|
+
try {
|
|
15
|
+
const count = await wishlistService.totalItemsCount({
|
|
16
|
+
customer_id,
|
|
17
|
+
wishlist_id,
|
|
18
|
+
});
|
|
19
|
+
return res.status(200).json({
|
|
20
|
+
total_items_count: count,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
catch (error) {
|
|
24
|
+
console.log("Error fetching wishlists:", error);
|
|
25
|
+
return res.status(500).end();
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3dpc2hsaXN0cy90b3RhbC1pdGVtcy1jb3VudC9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLGtCQStCQztBQXZDRCwyREFBK0Q7QUFReEQsS0FBSyxVQUFVLEdBQUcsQ0FDdkIsR0FBMEQsRUFDMUQsR0FBMEM7SUFFMUMsTUFBTSxFQUFFLFdBQVcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxjQUFjLENBQUM7SUFFM0MsTUFBTSxXQUFXLEdBQUcsR0FBRyxFQUFFLFlBQVksRUFBRSxRQUFRLENBQUM7SUFFaEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUM7WUFDMUIsaUJBQWlCLEVBQUUsQ0FBQztTQUNyQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxlQUFlLEdBQ25CLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUF3QiwwQkFBZSxDQUFDLENBQUM7SUFFNUQsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsTUFBTSxlQUFlLENBQUMsZUFBZSxDQUFDO1lBQ2xELFdBQVc7WUFDWCxXQUFXO1NBQ1osQ0FBQyxDQUFDO1FBRUgsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUMxQixpQkFBaUIsRUFBRSxLQUFLO1NBQ3pCLENBQUMsQ0FBQztJQUNMLENBQUM7SUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1FBQ2YsT0FBTyxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVoRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7SUFDL0IsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TotalItemsCountInputSchema = void 0;
|
|
4
|
+
const zod_1 = require("zod");
|
|
5
|
+
exports.TotalItemsCountInputSchema = zod_1.z.object({
|
|
6
|
+
wishlist_id: zod_1.z.string().optional(),
|
|
7
|
+
});
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvd2lzaGxpc3RzL3RvdGFsLWl0ZW1zLWNvdW50L3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBRVgsUUFBQSwwQkFBMEIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2pELFdBQVcsRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0NBQ25DLENBQUMsQ0FBQyJ9
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.UpdateWishlistInputSchema = exports.CreateWishlistInputSchema = void 0;
|
|
3
|
+
exports.ListWishlistsQuerySchema = exports.UpdateWishlistInputSchema = exports.CreateWishlistInputSchema = void 0;
|
|
4
4
|
const zod_1 = require("zod");
|
|
5
5
|
exports.CreateWishlistInputSchema = zod_1.z.object({
|
|
6
6
|
name: zod_1.z.string().optional(),
|
|
@@ -10,4 +10,7 @@ exports.CreateWishlistInputSchema = zod_1.z.object({
|
|
|
10
10
|
exports.UpdateWishlistInputSchema = exports.CreateWishlistInputSchema.pick({
|
|
11
11
|
name: true,
|
|
12
12
|
});
|
|
13
|
-
|
|
13
|
+
exports.ListWishlistsQuerySchema = zod_1.z.object({
|
|
14
|
+
items_fields: zod_1.z.array(zod_1.z.string()).optional(),
|
|
15
|
+
});
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcGkvc3RvcmUvd2lzaGxpc3RzL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkJBQXdCO0FBRVgsUUFBQSx5QkFBeUIsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQ2hELElBQUksRUFBRSxPQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxFQUFFO0lBQzNCLGdCQUFnQixFQUFFLE9BQUMsQ0FBQyxNQUFNLEVBQUU7Q0FDN0IsQ0FBQyxDQUFDO0FBSUgsZ0RBQWdEO0FBQ25DLFFBQUEseUJBQXlCLEdBQUcsaUNBQXlCLENBQUMsSUFBSSxDQUFDO0lBQ3RFLElBQUksRUFBRSxJQUFJO0NBQ1gsQ0FBQyxDQUFDO0FBSVUsUUFBQSx3QkFBd0IsR0FBRyxPQUFDLENBQUMsTUFBTSxDQUFDO0lBQy9DLFlBQVksRUFBRSxPQUFDLENBQUMsS0FBSyxDQUFDLE9BQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLFFBQVEsRUFBRTtDQUM3QyxDQUFDLENBQUMifQ==
|
|
@@ -21,7 +21,8 @@ const wishlist_item_1 = require("./models/wishlist-item");
|
|
|
21
21
|
const utils_2 = require("@medusajs/framework/utils");
|
|
22
22
|
const zod_1 = __importDefault(require("zod"));
|
|
23
23
|
const optionsSchema = zod_1.default.object({
|
|
24
|
-
|
|
24
|
+
wishlistFields: zod_1.default.array(zod_1.default.string()).optional(),
|
|
25
|
+
wishlistItemsFields: zod_1.default.array(zod_1.default.string()).optional(),
|
|
25
26
|
includeWishlistItems: zod_1.default.boolean().default(false),
|
|
26
27
|
includeWishlistItemsTake: zod_1.default.number().default(5),
|
|
27
28
|
allowGuestWishlist: zod_1.default.boolean().default(false),
|
|
@@ -47,33 +48,15 @@ class WishlistModuleService extends (0, utils_1.MedusaService)({
|
|
|
47
48
|
.where("wi.product_id = ?", [productId])
|
|
48
49
|
.execute())?.length || 0);
|
|
49
50
|
}
|
|
50
|
-
async
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
.select(["w.id"])
|
|
60
|
-
.where("w.customer_id = ?", [customerId])
|
|
61
|
-
.execute();
|
|
62
|
-
if (!wishlist?.[0]?.id) {
|
|
63
|
-
throw new Error("Wishlist not found");
|
|
64
|
-
}
|
|
65
|
-
const wishlistId = wishlist[0].id;
|
|
66
|
-
const wishlistItem = await context.manager
|
|
67
|
-
?.createQueryBuilder("wishlist_item", "wi")
|
|
68
|
-
.select(["wi.id"])
|
|
69
|
-
.where("wi.wishlist_id = ?", [wishlistId])
|
|
70
|
-
.andWhere("wi.product_id = ?", [productId])
|
|
71
|
-
.andWhere("wi.deleted_at IS NULL")
|
|
72
|
-
.execute();
|
|
73
|
-
if (!wishlistItem?.[0]?.id) {
|
|
74
|
-
throw new Error("Wishlist item not found");
|
|
75
|
-
}
|
|
76
|
-
return wishlistItem[0].id;
|
|
51
|
+
async totalItemsCount({ customer_id, wishlist_id, }, context = {}) {
|
|
52
|
+
const wishlist_items_count = await context.manager?.count(wishlist_item_1.WishlistItem, {
|
|
53
|
+
wishlist: {
|
|
54
|
+
...(customer_id && { customer_id }),
|
|
55
|
+
...(wishlist_id &&
|
|
56
|
+
!customer_id && { id: wishlist_id, customer_id: null }),
|
|
57
|
+
},
|
|
58
|
+
});
|
|
59
|
+
return Number(wishlist_items_count || 0);
|
|
77
60
|
}
|
|
78
61
|
}
|
|
79
62
|
exports.default = WishlistModuleService;
|
|
@@ -88,14 +71,7 @@ __decorate([
|
|
|
88
71
|
(0, utils_2.InjectManager)(),
|
|
89
72
|
__param(1, (0, utils_1.MedusaContext)()),
|
|
90
73
|
__metadata("design:type", Function),
|
|
91
|
-
__metadata("design:paramtypes", [
|
|
92
|
-
__metadata("design:returntype", Promise)
|
|
93
|
-
], WishlistModuleService.prototype, "getWishlistsOfProducts", null);
|
|
94
|
-
__decorate([
|
|
95
|
-
(0, utils_2.InjectManager)(),
|
|
96
|
-
__param(2, (0, utils_1.MedusaContext)()),
|
|
97
|
-
__metadata("design:type", Function),
|
|
98
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
74
|
+
__metadata("design:paramtypes", [Object, Object]),
|
|
99
75
|
__metadata("design:returntype", Promise)
|
|
100
|
-
], WishlistModuleService.prototype, "
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
], WishlistModuleService.prototype, "totalItemsCount", null);
|
|
77
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxxREFJbUM7QUFDbkMsZ0RBQTZDO0FBQzdDLDBEQUFzRDtBQUN0RCxxREFBMEQ7QUFHMUQsOENBQW9CO0FBRXBCLE1BQU0sYUFBYSxHQUFHLGFBQUMsQ0FBQyxNQUFNLENBQUM7SUFDN0IsY0FBYyxFQUFFLGFBQUMsQ0FBQyxLQUFLLENBQUMsYUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQzlDLG1CQUFtQixFQUFFLGFBQUMsQ0FBQyxLQUFLLENBQUMsYUFBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsUUFBUSxFQUFFO0lBQ25ELG9CQUFvQixFQUFFLGFBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0lBQ2hELHdCQUF3QixFQUFFLGFBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQy9DLGtCQUFrQixFQUFFLGFBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO0NBQy9DLENBQUMsQ0FBQztBQUlILE1BQXFCLHFCQUFzQixTQUFRLElBQUEscUJBQWEsRUFBQztJQUMvRCxRQUFRLEVBQVIsbUJBQVE7SUFDUixZQUFZLEVBQVosNEJBQVk7Q0FDYixDQUFDO0lBR0EsTUFBTSxDQUFDLGVBQWUsQ0FDcEIsUUFBd0M7UUFFeEMsTUFBTSxNQUFNLEdBQUcsYUFBYSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3BCLE1BQU0sSUFBSSxtQkFBVyxDQUNuQixtQkFBVyxDQUFDLEtBQUssQ0FBQyxZQUFZLEVBQzlCLHVEQUF1RCxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUM5RSxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxZQUFZLEVBQUUsRUFBRSxPQUF1QztRQUNyRCxLQUFLLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNwQixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sSUFBSSxFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUdLLEFBQU4sS0FBSyxDQUFDLDBCQUEwQixDQUM5QixTQUFpQixFQUNBLFVBQWtDLEVBQUU7UUFFckQsT0FBTyxDQUNMLENBQ0UsTUFBTSxPQUFPLENBQUMsT0FBTztZQUNuQixFQUFFLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUM7YUFDMUMsTUFBTSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxJQUFJLENBQUM7YUFDaEMsS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDdkMsT0FBTyxFQUFFLENBQ2IsRUFBRSxNQUFNLElBQUksQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDO0lBR0ssQUFBTixLQUFLLENBQUMsZUFBZSxDQUNuQixFQUNFLFdBQVcsRUFDWCxXQUFXLEdBQ29DLEVBRWhDLFVBQWtDLEVBQUU7UUFFckQsTUFBTSxvQkFBb0IsR0FBRyxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLDRCQUFZLEVBQUU7WUFDdEUsUUFBUSxFQUFFO2dCQUNSLEdBQUcsQ0FBQyxXQUFXLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDbkMsR0FBRyxDQUFDLFdBQVc7b0JBQ2IsQ0FBQyxXQUFXLElBQUksRUFBRSxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUMxRDtTQUNGLENBQUMsQ0FBQztRQUVILE9BQU8sTUFBTSxDQUFDLG9CQUFvQixJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7Q0FDRjtBQTFERCx3Q0EwREM7QUFsQ087SUFETCxJQUFBLHFCQUFhLEdBQUU7SUFHYixXQUFBLElBQUEscUJBQWEsR0FBRSxDQUFBOzs7O3VFQVdqQjtBQUdLO0lBREwsSUFBQSxxQkFBYSxHQUFFO0lBT2IsV0FBQSxJQUFBLHFCQUFhLEdBQUUsQ0FBQTs7Ozs0REFXakIifQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getPagination = void 0;
|
|
4
|
-
const getPagination = ({ count, take, skip }) => {
|
|
3
|
+
exports.defaultItemsFields = exports.getPagination = void 0;
|
|
4
|
+
const getPagination = ({ count, take, skip, }) => {
|
|
5
5
|
const totalPages = Math.max(Math.ceil(count / take), 1);
|
|
6
6
|
const currentPage = skip / take + 1;
|
|
7
7
|
const nextPage = Math.min(currentPage + 1, totalPages);
|
|
@@ -9,4 +9,16 @@ const getPagination = ({ count, take, skip }) => {
|
|
|
9
9
|
return { count, nextPage, currentPage, prevPage, totalPages };
|
|
10
10
|
};
|
|
11
11
|
exports.getPagination = getPagination;
|
|
12
|
-
|
|
12
|
+
exports.defaultItemsFields = [
|
|
13
|
+
"id",
|
|
14
|
+
"product_id",
|
|
15
|
+
"wishlist_id",
|
|
16
|
+
"created_at",
|
|
17
|
+
"updated_at",
|
|
18
|
+
"deleted_at",
|
|
19
|
+
"product_variant.*",
|
|
20
|
+
"product_variant.prices.*",
|
|
21
|
+
"product_variant.calculated_price",
|
|
22
|
+
"product_variant.product.thumbnail",
|
|
23
|
+
];
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvdXRpbHMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBRU8sTUFBTSxhQUFhLEdBQUcsQ0FBQyxFQUM1QixLQUFLLEVBQ0wsSUFBSSxFQUNKLElBQUksR0FDZ0MsRUFBRSxFQUFFO0lBQ3hDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDeEQsTUFBTSxXQUFXLEdBQUcsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7SUFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEdBQUcsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3ZELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUU5QyxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDO0FBQ2hFLENBQUMsQ0FBQztBQVhXLFFBQUEsYUFBYSxpQkFXeEI7QUFFVyxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLElBQUk7SUFDSixZQUFZO0lBQ1osYUFBYTtJQUNiLFlBQVk7SUFDWixZQUFZO0lBQ1osWUFBWTtJQUNaLG1CQUFtQjtJQUNuQiwwQkFBMEI7SUFDMUIsa0NBQWtDO0lBQ2xDLG1DQUFtQztDQUNwQyxDQUFDIn0=
|
package/README.md
CHANGED
|
@@ -1,64 +1,169 @@
|
|
|
1
|
-
|
|
2
|
-
<a href="https://www.medusajs.com">
|
|
3
|
-
<picture>
|
|
4
|
-
<source media="(prefers-color-scheme: dark)" srcset="https://user-images.githubusercontent.com/59018053/229103275-b5e482bb-4601-46e6-8142-244f531cebdb.svg">
|
|
5
|
-
<source media="(prefers-color-scheme: light)" srcset="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
|
|
6
|
-
<img alt="Medusa logo" src="https://user-images.githubusercontent.com/59018053/229103726-e5b529a3-9b3f-4970-8a1f-c6af37f087bf.svg">
|
|
7
|
-
</picture>
|
|
8
|
-
</a>
|
|
9
|
-
</p>
|
|
10
|
-
<h1 align="center">
|
|
11
|
-
Medusa Plugin Starter
|
|
12
|
-
</h1>
|
|
1
|
+
# π§ββοΈ Wishlist Plugin for Medusa
|
|
13
2
|
|
|
14
|
-
|
|
15
|
-
<a href="https://docs.medusajs.com">Documentation</a> |
|
|
16
|
-
<a href="https://www.medusajs.com">Website</a>
|
|
17
|
-
</h4>
|
|
3
|
+
The **Alphabite Wishlist Plugin** is the most feature-complete wishlist system for [MedusaJS](https://medusajs.com). It supports both authenticated and guest users, multiple wishlists per user, and a full-featured SDK client for frontend integration.
|
|
18
4
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
5
|
+
This plugin ships with:
|
|
6
|
+
- π A fully typed JS SDK plugin
|
|
7
|
+
- π A Postman collection
|
|
8
|
+
- β
Support for guest & authenticated customers
|
|
9
|
+
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
## π Table of Contents
|
|
13
|
+
|
|
14
|
+
- [β¨ Features](#-features)
|
|
15
|
+
- [π¦ Installation](#-installation)
|
|
16
|
+
- [π§ Plugin Options](#-plugin-options)
|
|
17
|
+
- [π¦ API Endpoints](#-api-endpoints)
|
|
18
|
+
- [π§βπ» SDK Usage](#-sdk-usage)
|
|
19
|
+
- [π§ͺ Guest Wishlist Flow](#-guest-wishlist-flow)
|
|
20
|
+
- [π§© Requirements](#-requirements)
|
|
21
|
+
- [π Postman Collection](#-postman-collection)
|
|
22
|
+
- [π€ Contributing](#-contributing)
|
|
23
|
+
|
|
24
|
+
---
|
|
25
|
+
|
|
26
|
+
## β¨ Features
|
|
34
27
|
|
|
35
|
-
|
|
28
|
+
- β
Multiple wishlists per customer
|
|
29
|
+
- β
Add/remove items to/from any wishlist
|
|
30
|
+
- β
Guest wishlist supported + transfer when registered
|
|
31
|
+
- β
Fully typed Medusa JS SDK integration with our SDK client
|
|
32
|
+
- β
Pagination and filtering built-in
|
|
36
33
|
|
|
37
|
-
|
|
34
|
+
---
|
|
38
35
|
|
|
39
|
-
##
|
|
36
|
+
## π¦ Installation
|
|
40
37
|
|
|
41
|
-
|
|
38
|
+
Install the plugin via npm:
|
|
42
39
|
|
|
43
|
-
|
|
40
|
+
```bash
|
|
41
|
+
npm install @alphabite/medusa-wishlist
|
|
42
|
+
```
|
|
44
43
|
|
|
45
|
-
|
|
44
|
+
In your `medusa-config.js`, register the plugin:
|
|
46
45
|
|
|
47
|
-
|
|
46
|
+
```js
|
|
47
|
+
const plugins = [
|
|
48
|
+
{
|
|
49
|
+
resolve: '@alphabite/medusa-wishlist',
|
|
50
|
+
options: {
|
|
51
|
+
// all are optional, read bellow about default values
|
|
52
|
+
wishlistFields: [],
|
|
53
|
+
wishlistItemsFields: [],
|
|
54
|
+
includeWishlistItems: true,
|
|
55
|
+
includeWishlistItemsTake: 5,
|
|
56
|
+
allowGuestWishlist: true,
|
|
57
|
+
},
|
|
58
|
+
},
|
|
59
|
+
]
|
|
60
|
+
```
|
|
48
61
|
|
|
49
|
-
|
|
62
|
+
---
|
|
50
63
|
|
|
51
|
-
|
|
64
|
+
## π§ Plugin Options
|
|
52
65
|
|
|
53
|
-
|
|
66
|
+
| Option | Type | Default | Description |
|
|
67
|
+
|---------------------------|------------|---------|--------------------------------------------------------------------------|
|
|
68
|
+
| `wishlistFields` | `string[]` | `["items.*", "items.product_variant.*", "items.product_variant.prices.*", "items.product_variant.product.thumbnail", "items.product_variant.product.id"]` | Selectively include Medusa product or product variant fields on wishlist list/retrieve endpoints that have wishlist items included |
|
|
69
|
+
| `wishlistItemsFields` | `string[]` | `["id", "product_id", "wishlist_id", "created_at", "wishlist.customer_id", "updated_at", "deleted_at", "product_variant.*", "product_variant.prices.*", "product_variant.calculated_price", "product_variant.product.thumbnail",]` | Selectively include Medusa product or product variant fields on wishlist items list/retrieve endpoints |
|
|
70
|
+
| `includeWishlistItems` | `boolean` | `false` | Automatically populate wishlist items in `GET /store/wishlists` |
|
|
71
|
+
| `includeWishlistItemsTake` | `number` | `5` | Limit number of items if `includeWishlistItems` is true |
|
|
72
|
+
| `allowGuestWishlist` | `boolean` | `false` | Enables wishlist creation & usage without authentication (cookie-based) |
|
|
54
73
|
|
|
55
|
-
|
|
74
|
+
---
|
|
56
75
|
|
|
57
|
-
|
|
76
|
+
## π¦ API Endpoints
|
|
58
77
|
|
|
59
|
-
|
|
78
|
+
All endpoints are available under `/store/wishlists`.
|
|
60
79
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
80
|
+
| Method | Endpoint | Auth | Description |
|
|
81
|
+
|--------|--------------------------------------------|----------------|-----------------------------------------|
|
|
82
|
+
| GET | `/store/wishlists` | β
| List wishlists for the current customer |
|
|
83
|
+
| POST | `/store/wishlists` | β (optional) | Create a new wishlist |
|
|
84
|
+
| GET | `/store/wishlists/:id` | β (optional) | Retrieve a wishlist by ID |
|
|
85
|
+
| PUT | `/store/wishlists/:id` | β
| Update wishlist metadata |
|
|
86
|
+
| DELETE | `/store/wishlists/:id` | β
| Delete a wishlist |
|
|
87
|
+
| POST | `/store/wishlists/:id/transfer` | β
| Transfer guest wishlist to logged-in user |
|
|
88
|
+
| GET | `/store/wishlists/:id/items` | β (optional) | Get items in a wishlist |
|
|
89
|
+
| POST | `/store/wishlists/:id/add-item` | β (optional) | Add an item to the wishlist |
|
|
90
|
+
| DELETE | `/store/wishlists/:id/items/:item_id` | β (optional) | Remove an item from the wishlist |
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
## π§βπ» SDK Usage
|
|
95
|
+
|
|
96
|
+
βββ[Read more about our Medusa compatible SDK here](https://github.com/alphabite-dev/medusa-client/tree/main)
|
|
97
|
+
|
|
98
|
+
```ts
|
|
99
|
+
import { AlphabiteMedusaClient, wishlistPlugin } from '@alphabite/sdk'
|
|
100
|
+
|
|
101
|
+
const sdk = new AlphabiteMedusaClient({
|
|
102
|
+
{
|
|
103
|
+
baseUrl,
|
|
104
|
+
debug: process.env.NODE_ENV === "development",
|
|
105
|
+
publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
|
|
106
|
+
},
|
|
107
|
+
[wishlistPlugin],
|
|
108
|
+
{
|
|
109
|
+
getAuthHeader: () => { return { authorization: `Bearer ${customerJwt}` } },
|
|
110
|
+
}
|
|
111
|
+
})
|
|
112
|
+
|
|
113
|
+
// Create wishlist
|
|
114
|
+
await sdk.alphabite.wishlist.create({ name: 'My Sneakers' })
|
|
115
|
+
|
|
116
|
+
// Add item
|
|
117
|
+
await sdk.alphabite.wishlist.addItem({
|
|
118
|
+
id: 'wishlist_id',
|
|
119
|
+
product_variant_id: 'variant_id',
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
// List items
|
|
123
|
+
const { data } = await sdk.alphabite.wishlist.listItems({ id: 'wishlist_id' })
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## π§ͺ Guest Wishlist Flow
|
|
130
|
+
|
|
131
|
+
Guest wishlists work like guest carts:
|
|
132
|
+
|
|
133
|
+
1. Create a wishlist (no auth required)
|
|
134
|
+
2. Save the `id` in a cookie
|
|
135
|
+
3. Use that ID for listing/adding/removing items
|
|
136
|
+
4. When the user signs up or logs in, call the `transfer` endpoint to associate it:
|
|
137
|
+
|
|
138
|
+
```ts
|
|
139
|
+
await medusa.alphabite.wishlist.transfer({ id: wishlistId })
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
After that, the cookie is no longer needed.
|
|
143
|
+
|
|
144
|
+
---
|
|
145
|
+
|
|
146
|
+
## π§© Requirements
|
|
147
|
+
|
|
148
|
+
- Medusa v2.5.0+
|
|
149
|
+
- Works with both `@medusajs/types` and `@medusajs/framework`
|
|
150
|
+
|
|
151
|
+
---
|
|
152
|
+
|
|
153
|
+
## π Postman Collection
|
|
154
|
+
|
|
155
|
+
Youβll find the ready-to-import Postman collection at:
|
|
156
|
+
|
|
157
|
+
```
|
|
158
|
+
docs/postman/WishlistPlugin.postman_collection.json
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
Use it to explore and test all endpoints interactively.
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
## π€ Contributing
|
|
166
|
+
|
|
167
|
+
We welcome issues, feedback, and PRs. Fork it, build it, improve it.
|
|
168
|
+
|
|
169
|
+
Letβs make commerce more personalized ποΈ
|
package/package.json
CHANGED
|
@@ -1,12 +1,20 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alphabite/medusa-wishlist",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Alphabite's Medusa Wishlist Plugin",
|
|
5
5
|
"author": "Alphabite (https://alphabite.io)",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"files": [
|
|
8
8
|
".medusa/server"
|
|
9
9
|
],
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/alphabite-dev/medusa-client/issues"
|
|
12
|
+
},
|
|
13
|
+
"homepage": "https://github.com/alphabite-dev/medusa-client#readme",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+ssh://git@github.com/alphabite-dev/medusa-wishlist.git"
|
|
17
|
+
},
|
|
10
18
|
"exports": {
|
|
11
19
|
"./package.json": "./package.json",
|
|
12
20
|
"./workflows": "./.medusa/server/src/workflows/index.js",
|