@lodashventure/medusa-brand 1.3.14 → 1.3.16
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.
|
@@ -18,8 +18,14 @@ const parseNumber = (value, fallback) => {
|
|
|
18
18
|
const SORTABLE_FIELDS = new Set(["name", "created_at", "updated_at"]);
|
|
19
19
|
// GET - List all active brands for store
|
|
20
20
|
const GET = async (req, res) => {
|
|
21
|
-
const brandService = req.scope.resolve("brandCustom");
|
|
22
21
|
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
22
|
+
let brandService = null;
|
|
23
|
+
try {
|
|
24
|
+
brandService = req.scope.resolve("brandCustom");
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
logger.warn("brandCustom service is not registered in container, falling back to direct query.");
|
|
28
|
+
}
|
|
23
29
|
try {
|
|
24
30
|
const searchTerm = ensureSingleValue(req.query.q);
|
|
25
31
|
const sortByQuery = ensureSingleValue(req.query.sort_by) || "name";
|
|
@@ -40,7 +46,7 @@ const GET = async (req, res) => {
|
|
|
40
46
|
? sortByQuery
|
|
41
47
|
: "name";
|
|
42
48
|
const orderDirection = sortOrderQuery.toLowerCase() === "desc" ? "DESC" : "ASC";
|
|
43
|
-
if (typeof brandService.listAndCountBrands === "function") {
|
|
49
|
+
if (brandService && typeof brandService.listAndCountBrands === "function") {
|
|
44
50
|
const [brands, count] = await brandService.listAndCountBrands(filters, {
|
|
45
51
|
limit,
|
|
46
52
|
offset,
|
|
@@ -59,31 +65,71 @@ const GET = async (req, res) => {
|
|
|
59
65
|
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
60
66
|
return res.json({ brands, count, offset, limit });
|
|
61
67
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
68
|
+
if (brandService && typeof brandService.listBrands === "function") {
|
|
69
|
+
const [brands, count] = await Promise.all([
|
|
70
|
+
brandService.listBrands(filters, {
|
|
71
|
+
limit,
|
|
72
|
+
offset,
|
|
73
|
+
order: { [orderField]: orderDirection },
|
|
74
|
+
select: [
|
|
75
|
+
"id",
|
|
76
|
+
"name",
|
|
77
|
+
"slug",
|
|
78
|
+
"description",
|
|
79
|
+
"image",
|
|
80
|
+
"logo",
|
|
81
|
+
"website",
|
|
82
|
+
"metadata",
|
|
83
|
+
],
|
|
84
|
+
}),
|
|
85
|
+
typeof brandService.countBrands === "function"
|
|
86
|
+
? brandService.countBrands(filters)
|
|
87
|
+
: brandService
|
|
88
|
+
.listBrands(filters)
|
|
89
|
+
.then((result) => result.length),
|
|
90
|
+
]);
|
|
91
|
+
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
92
|
+
return res.json({
|
|
93
|
+
brands,
|
|
94
|
+
count,
|
|
65
95
|
offset,
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
96
|
+
limit,
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
100
|
+
if (!query?.graph) {
|
|
101
|
+
throw new Error("Query service is not available for listing brands");
|
|
102
|
+
}
|
|
103
|
+
const { data: brandRecords = [], metadata } = await query.graph({
|
|
104
|
+
entity: "brand",
|
|
105
|
+
fields: [
|
|
106
|
+
"id",
|
|
107
|
+
"name",
|
|
108
|
+
"slug",
|
|
109
|
+
"description",
|
|
110
|
+
"image",
|
|
111
|
+
"logo",
|
|
112
|
+
"website",
|
|
113
|
+
"metadata",
|
|
114
|
+
"is_active",
|
|
115
|
+
"created_at",
|
|
116
|
+
"updated_at",
|
|
117
|
+
],
|
|
118
|
+
filters,
|
|
119
|
+
pagination: {
|
|
120
|
+
skip: offset,
|
|
121
|
+
take: limit,
|
|
122
|
+
order: {
|
|
123
|
+
[orderField]: orderDirection,
|
|
124
|
+
},
|
|
125
|
+
},
|
|
126
|
+
});
|
|
127
|
+
const count = typeof metadata?.count === "number"
|
|
128
|
+
? metadata.count
|
|
129
|
+
: brandRecords.length;
|
|
84
130
|
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
85
131
|
return res.json({
|
|
86
|
-
brands,
|
|
132
|
+
brands: brandRecords,
|
|
87
133
|
count,
|
|
88
134
|
offset,
|
|
89
135
|
limit,
|
|
@@ -92,8 +138,13 @@ const GET = async (req, res) => {
|
|
|
92
138
|
catch (error) {
|
|
93
139
|
logger.error("Error listing brands for store:", error);
|
|
94
140
|
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
95
|
-
return res.
|
|
141
|
+
return res.json({
|
|
142
|
+
brands: [],
|
|
143
|
+
count: 0,
|
|
144
|
+
offset: 0,
|
|
145
|
+
limit: 0,
|
|
146
|
+
});
|
|
96
147
|
}
|
|
97
148
|
};
|
|
98
149
|
exports.GET = GET;
|
|
99
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2JyYW5kcy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxxREFBc0U7QUFFdEUsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLEtBQWMsRUFBc0IsRUFBRTtJQUMvRCxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUN6QixPQUFPLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxPQUFPLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDdkQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxLQUF5QixFQUFFLFFBQWdCLEVBQUUsRUFBRTtJQUNsRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDWCxPQUFPLFFBQVEsQ0FBQztJQUNsQixDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTdCLE9BQU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7QUFDckQsQ0FBQyxDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsQ0FBQyxNQUFNLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7QUFFdEUseUNBQXlDO0FBQ2xDLE1BQU0sR0FBRyxHQUFHLEtBQUssRUFBRSxHQUFrQixFQUFFLEdBQW1CLEVBQUUsRUFBRTtJQUNuRSxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNuRSxJQUFJLFlB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
|