@froze-labs/medusa-plugin-brands 0.0.4 → 0.0.5
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.
|
@@ -34,26 +34,34 @@ const POST = async (req, res) => {
|
|
|
34
34
|
res.json({ success: true });
|
|
35
35
|
};
|
|
36
36
|
exports.POST = POST;
|
|
37
|
-
// DELETE /admin/products/:id/brands - Remove
|
|
37
|
+
// DELETE /admin/products/:id/brands - Remove brands from a product
|
|
38
38
|
const DELETE = async (req, res) => {
|
|
39
39
|
const { id } = req.params;
|
|
40
40
|
const { brand_ids } = req.body;
|
|
41
41
|
const remoteLink = req.scope.resolve(utils_1.ContainerRegistrationKeys.REMOTE_LINK);
|
|
42
|
-
|
|
42
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
43
|
+
let brandIdsToRemove = [];
|
|
44
|
+
if (brand_ids && Array.isArray(brand_ids) && brand_ids.length > 0) {
|
|
43
45
|
// Remove specific brands
|
|
44
|
-
|
|
46
|
+
brandIdsToRemove = brand_ids;
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
// Remove all brands - first fetch current brands
|
|
50
|
+
const { data } = await query.graph({
|
|
51
|
+
entity: "product",
|
|
52
|
+
fields: ["brands.id"],
|
|
53
|
+
filters: { id },
|
|
54
|
+
});
|
|
55
|
+
brandIdsToRemove = data[0]?.brands?.map((b) => b.id) || [];
|
|
56
|
+
}
|
|
57
|
+
if (brandIdsToRemove.length > 0) {
|
|
58
|
+
const links = brandIdsToRemove.map((brandId) => ({
|
|
45
59
|
[utils_1.Modules.PRODUCT]: { product_id: id },
|
|
46
60
|
[brand_1.BRAND_MODULE]: { brand_id: brandId },
|
|
47
61
|
}));
|
|
48
62
|
await remoteLink.dismiss(links);
|
|
49
63
|
}
|
|
50
|
-
else {
|
|
51
|
-
// Remove all brands from product
|
|
52
|
-
await remoteLink.dismiss({
|
|
53
|
-
[utils_1.Modules.PRODUCT]: { product_id: id },
|
|
54
|
-
});
|
|
55
|
-
}
|
|
56
64
|
res.json({ success: true });
|
|
57
65
|
};
|
|
58
66
|
exports.DELETE = DELETE;
|
|
59
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL3Byb2R1Y3RzL1tpZF0vYnJhbmRzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUE4RTtBQUM5RSx3REFBMkQ7QUFFM0QsNERBQTREO0FBQ3JELE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQTtJQUN6QixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUVoRSxNQUFNLEVBQUUsSUFBSSxFQUFFLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sRUFBRSxTQUFTO1FBQ2pCLE1BQU0sRUFBRSxDQUFDLElBQUksRUFBRSxVQUFVLENBQUM7UUFDMUIsT0FBTyxFQUFFLEVBQUUsRUFBRSxFQUFFO0tBQ2hCLENBQUMsQ0FBQTtJQUVGLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0FBQzVDLENBQUMsQ0FBQTtBQWZZLFFBQUEsR0FBRyxPQWVmO0FBRUQsNkRBQTZEO0FBQ3RELE1BQU0sSUFBSSxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNwRSxNQUFN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
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20250127000002 = void 0;
|
|
4
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
5
|
+
class Migration20250127000002 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
// Link table for product <-> brand many-to-many relationship
|
|
8
|
+
this.addSql(`
|
|
9
|
+
CREATE TABLE IF NOT EXISTS "product_brand" (
|
|
10
|
+
"id" TEXT NOT NULL,
|
|
11
|
+
"product_id" TEXT NOT NULL,
|
|
12
|
+
"brand_id" TEXT NOT NULL,
|
|
13
|
+
"created_at" TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
14
|
+
"updated_at" TIMESTAMPTZ NOT NULL DEFAULT now(),
|
|
15
|
+
"deleted_at" TIMESTAMPTZ NULL,
|
|
16
|
+
CONSTRAINT "product_brand_pkey" PRIMARY KEY ("id")
|
|
17
|
+
);
|
|
18
|
+
`);
|
|
19
|
+
this.addSql(`
|
|
20
|
+
CREATE INDEX IF NOT EXISTS "IDX_product_brand_product_id" ON "product_brand" ("product_id");
|
|
21
|
+
`);
|
|
22
|
+
this.addSql(`
|
|
23
|
+
CREATE INDEX IF NOT EXISTS "IDX_product_brand_brand_id" ON "product_brand" ("brand_id");
|
|
24
|
+
`);
|
|
25
|
+
this.addSql(`
|
|
26
|
+
CREATE UNIQUE INDEX IF NOT EXISTS "IDX_product_brand_unique" ON "product_brand" ("product_id", "brand_id") WHERE "deleted_at" IS NULL;
|
|
27
|
+
`);
|
|
28
|
+
this.addSql(`
|
|
29
|
+
CREATE INDEX IF NOT EXISTS "IDX_product_brand_deleted_at" ON "product_brand" ("deleted_at");
|
|
30
|
+
`);
|
|
31
|
+
}
|
|
32
|
+
async down() {
|
|
33
|
+
this.addSql(`DROP INDEX IF EXISTS "IDX_product_brand_deleted_at";`);
|
|
34
|
+
this.addSql(`DROP INDEX IF EXISTS "IDX_product_brand_unique";`);
|
|
35
|
+
this.addSql(`DROP INDEX IF EXISTS "IDX_product_brand_brand_id";`);
|
|
36
|
+
this.addSql(`DROP INDEX IF EXISTS "IDX_product_brand_product_id";`);
|
|
37
|
+
this.addSql(`DROP TABLE IF EXISTS "product_brand";`);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
exports.Migration20250127000002 = Migration20250127000002;
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNTAxMjcwMDAwMDIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjUwMTI3MDAwMDAyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHNEQUFpRDtBQUVqRCxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ04sNkRBQTZEO1FBQzdELElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7S0FVWCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDOztLQUVYLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxNQUFNLENBQUM7O0tBRVgsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLE1BQU0sQ0FBQzs7S0FFWCxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsTUFBTSxDQUFDOztLQUVYLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsc0RBQXNELENBQUMsQ0FBQTtRQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLGtEQUFrRCxDQUFDLENBQUE7UUFDL0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvREFBb0QsQ0FBQyxDQUFBO1FBQ2pFLElBQUksQ0FBQyxNQUFNLENBQUMsc0RBQXNELENBQUMsQ0FBQTtRQUNuRSxJQUFJLENBQUMsTUFBTSxDQUFDLHVDQUF1QyxDQUFDLENBQUE7SUFDdEQsQ0FBQztDQUNGO0FBdkNELDBEQXVDQyJ9
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.Migration20250127000001 = void 0;
|
|
3
|
+
exports.Migration20250127000002 = exports.Migration20250127000001 = void 0;
|
|
4
4
|
var Migration20250127000001_1 = require("./Migration20250127000001");
|
|
5
5
|
Object.defineProperty(exports, "Migration20250127000001", { enumerable: true, get: function () { return Migration20250127000001_1.Migration20250127000001; } });
|
|
6
|
-
|
|
6
|
+
var Migration20250127000002_1 = require("./Migration20250127000002");
|
|
7
|
+
Object.defineProperty(exports, "Migration20250127000002", { enumerable: true, get: function () { return Migration20250127000002_1.Migration20250127000002; } });
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9icmFuZC9taWdyYXRpb25zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFFQUFtRTtBQUExRCxrSUFBQSx1QkFBdUIsT0FBQTtBQUNoQyxxRUFBbUU7QUFBMUQsa0lBQUEsdUJBQXVCLE9BQUEifQ==
|