@lodashventure/medusa-collection-thumbnail 1.1.1 → 1.1.3
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.
|
@@ -1,4 +1,8 @@
|
|
|
1
1
|
import { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
|
|
2
|
+
type MedusaRequestWithFile<TBody = unknown> = MedusaRequest<TBody> & {
|
|
3
|
+
file?: Express.Multer.File;
|
|
4
|
+
};
|
|
2
5
|
export declare const GET: (req: MedusaRequest, res: MedusaResponse) => Promise<MedusaResponse>;
|
|
3
|
-
export declare const POST: (req:
|
|
6
|
+
export declare const POST: (req: MedusaRequestWithFile, res: MedusaResponse) => Promise<MedusaResponse>;
|
|
4
7
|
export declare const DELETE: (req: MedusaRequest, res: MedusaResponse) => Promise<MedusaResponse>;
|
|
8
|
+
export {};
|
|
@@ -2,52 +2,96 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DELETE = exports.POST = exports.GET = void 0;
|
|
4
4
|
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const collection_1 = require("../../../../../modules/collection");
|
|
5
6
|
const upload_collection_thumbnail_1 = require("../../../../../workflows/upload-collection-thumbnail");
|
|
6
7
|
const gcs_direct_upload_1 = require("../../../../../services/gcs-direct-upload");
|
|
8
|
+
const resolveLogger = (req) => {
|
|
9
|
+
try {
|
|
10
|
+
return req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
11
|
+
}
|
|
12
|
+
catch {
|
|
13
|
+
return console;
|
|
14
|
+
}
|
|
15
|
+
};
|
|
16
|
+
const normalizeCustomRecord = (record) => {
|
|
17
|
+
if (!record) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
if (Array.isArray(record)) {
|
|
21
|
+
for (const entry of record) {
|
|
22
|
+
const normalized = normalizeCustomRecord(entry);
|
|
23
|
+
if (normalized) {
|
|
24
|
+
return normalized;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return undefined;
|
|
28
|
+
}
|
|
29
|
+
if (typeof record === "object") {
|
|
30
|
+
return record;
|
|
31
|
+
}
|
|
32
|
+
return undefined;
|
|
33
|
+
};
|
|
7
34
|
const GET = async (req, res) => {
|
|
8
35
|
const { id } = req.params;
|
|
9
|
-
const
|
|
36
|
+
const logger = resolveLogger(req);
|
|
10
37
|
try {
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
38
|
+
const collectionCustomService = req.scope.resolve(collection_1.COLLECTION_MODULE);
|
|
39
|
+
const customRecords = await collectionCustomService.listProductCollectionCustoms({
|
|
40
|
+
collection_id: id,
|
|
41
|
+
});
|
|
42
|
+
const customData = normalizeCustomRecord(customRecords);
|
|
43
|
+
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
14
44
|
return res.json({
|
|
15
|
-
thumbnail: customData?.thumbnail
|
|
45
|
+
thumbnail: customData?.thumbnail ?? null,
|
|
16
46
|
});
|
|
17
47
|
}
|
|
18
48
|
catch (error) {
|
|
19
|
-
|
|
49
|
+
const err = error;
|
|
50
|
+
logger.error("Error fetching collection thumbnail:", err);
|
|
51
|
+
if (err?.name === "AwilixResolutionError") {
|
|
52
|
+
return res.status(500).json({
|
|
53
|
+
error: "Collection thumbnail module is not registered",
|
|
54
|
+
});
|
|
55
|
+
}
|
|
20
56
|
return res.status(500).json({ error: "Failed to fetch thumbnail" });
|
|
21
57
|
}
|
|
22
58
|
};
|
|
23
59
|
exports.GET = GET;
|
|
24
60
|
const POST = async (req, res) => {
|
|
25
61
|
const { id } = req.params;
|
|
26
|
-
const
|
|
27
|
-
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
62
|
+
const logger = resolveLogger(req);
|
|
28
63
|
try {
|
|
64
|
+
const productModuleService = req.scope.resolve(utils_1.Modules.PRODUCT);
|
|
29
65
|
const collection = await productModuleService.retrieveProductCollection(id);
|
|
30
66
|
if (!collection) {
|
|
31
67
|
return res.status(404).json({ error: "Collection not found" });
|
|
32
68
|
}
|
|
33
|
-
const
|
|
34
|
-
if (!
|
|
35
|
-
|
|
69
|
+
const payload = prepareFilePayload(req);
|
|
70
|
+
if (!isFilePayloadSuccess(payload)) {
|
|
71
|
+
const failurePayload = payload;
|
|
72
|
+
return res
|
|
73
|
+
.status(failurePayload.status)
|
|
74
|
+
.json({ error: failurePayload.error });
|
|
36
75
|
}
|
|
37
|
-
const
|
|
76
|
+
const { filename, mimeType, base64 } = payload.data;
|
|
77
|
+
const { result: workflowResult } = await (0, upload_collection_thumbnail_1.uploadCollectionThumbnailWorkflow)(req.scope).run({
|
|
38
78
|
input: {
|
|
39
79
|
collectionId: id,
|
|
40
80
|
fileData: {
|
|
41
|
-
filename
|
|
42
|
-
mimeType
|
|
43
|
-
content:
|
|
81
|
+
filename,
|
|
82
|
+
mimeType,
|
|
83
|
+
content: base64,
|
|
44
84
|
},
|
|
45
85
|
},
|
|
46
86
|
});
|
|
87
|
+
if (!workflowResult?.thumbnailUrl) {
|
|
88
|
+
throw new Error("Thumbnail URL missing from workflow result");
|
|
89
|
+
}
|
|
90
|
+
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
47
91
|
return res.json({
|
|
48
92
|
collection: {
|
|
49
93
|
id,
|
|
50
|
-
thumbnail:
|
|
94
|
+
thumbnail: workflowResult.thumbnailUrl,
|
|
51
95
|
},
|
|
52
96
|
});
|
|
53
97
|
}
|
|
@@ -59,45 +103,109 @@ const POST = async (req, res) => {
|
|
|
59
103
|
exports.POST = POST;
|
|
60
104
|
const DELETE = async (req, res) => {
|
|
61
105
|
const { id } = req.params;
|
|
62
|
-
const collectionCustomService = req.scope.resolve("collectionCustom");
|
|
63
|
-
const logger = req.scope.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
64
106
|
const gcsUploadService = new gcs_direct_upload_1.GcsDirectUploadService();
|
|
107
|
+
const logger = resolveLogger(req);
|
|
65
108
|
try {
|
|
66
|
-
const
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
109
|
+
const collectionCustomService = req.scope.resolve(collection_1.COLLECTION_MODULE);
|
|
110
|
+
const customRecords = await collectionCustomService.listProductCollectionCustoms({
|
|
111
|
+
collection_id: id,
|
|
112
|
+
});
|
|
113
|
+
const existingCustom = normalizeCustomRecord(customRecords);
|
|
114
|
+
if (!existingCustom?.thumbnail) {
|
|
115
|
+
return res
|
|
116
|
+
.status(404)
|
|
117
|
+
.json({ error: "No thumbnail found for this collection" });
|
|
71
118
|
}
|
|
72
119
|
// Delete the file from GCS
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
await gcsUploadService.deleteFile(filename);
|
|
84
|
-
}
|
|
120
|
+
try {
|
|
121
|
+
const url = existingCustom.thumbnail;
|
|
122
|
+
const isGcsUrl = url.includes("storage.googleapis.com") ||
|
|
123
|
+
url.includes("storage.cloud.google.com");
|
|
124
|
+
if (isGcsUrl) {
|
|
125
|
+
const parts = url.split("/");
|
|
126
|
+
const bucketIndex = parts.indexOf("sangaroon");
|
|
127
|
+
if (bucketIndex !== -1 && bucketIndex < parts.length - 1) {
|
|
128
|
+
const filename = parts.slice(bucketIndex + 1).join("/");
|
|
129
|
+
await gcsUploadService.deleteFile(filename);
|
|
85
130
|
}
|
|
86
131
|
}
|
|
87
|
-
catch (deleteError) {
|
|
88
|
-
logger.error("Error deleting file from GCS:", deleteError);
|
|
89
|
-
// Continue even if file deletion fails
|
|
90
|
-
}
|
|
91
132
|
}
|
|
92
|
-
|
|
133
|
+
catch (deleteError) {
|
|
134
|
+
logger.error("Error deleting file from GCS:", deleteError);
|
|
135
|
+
// Continue even if file deletion fails
|
|
136
|
+
}
|
|
137
|
+
await collectionCustomService.updateProductCollectionCustoms([
|
|
138
|
+
{ id: existingCustom.id, thumbnail: null },
|
|
139
|
+
]);
|
|
140
|
+
res.setHeader("Content-Type", "application/json; charset=utf-8");
|
|
93
141
|
return res.json({
|
|
94
142
|
message: "Thumbnail deleted successfully",
|
|
95
143
|
});
|
|
96
144
|
}
|
|
97
145
|
catch (error) {
|
|
98
|
-
|
|
146
|
+
const err = error;
|
|
147
|
+
logger.error("Error deleting collection thumbnail:", err);
|
|
148
|
+
if (err?.name === "AwilixResolutionError") {
|
|
149
|
+
return res.status(500).json({
|
|
150
|
+
error: "Collection thumbnail module is not registered",
|
|
151
|
+
});
|
|
152
|
+
}
|
|
99
153
|
return res.status(500).json({ error: "Failed to delete thumbnail" });
|
|
100
154
|
}
|
|
101
155
|
};
|
|
102
156
|
exports.DELETE = DELETE;
|
|
103
|
-
|
|
157
|
+
const isFilePayloadSuccess = (payload) => payload.success === true;
|
|
158
|
+
const prepareFilePayload = (req) => {
|
|
159
|
+
if (req.file) {
|
|
160
|
+
return {
|
|
161
|
+
success: true,
|
|
162
|
+
data: {
|
|
163
|
+
filename: req.file.originalname,
|
|
164
|
+
mimeType: req.file.mimetype,
|
|
165
|
+
base64: req.file.buffer.toString("base64"),
|
|
166
|
+
},
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
const body = req.body;
|
|
170
|
+
if (!body || typeof body !== "object") {
|
|
171
|
+
return {
|
|
172
|
+
success: false,
|
|
173
|
+
status: 400,
|
|
174
|
+
error: "Invalid payload",
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
const { filename, mimeType, content } = body;
|
|
178
|
+
if (!filename || !mimeType || !content) {
|
|
179
|
+
return {
|
|
180
|
+
success: false,
|
|
181
|
+
status: 400,
|
|
182
|
+
error: "Missing file data",
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
try {
|
|
186
|
+
const buffer = Buffer.from(content, "base64");
|
|
187
|
+
if (!buffer.length) {
|
|
188
|
+
return {
|
|
189
|
+
success: false,
|
|
190
|
+
status: 400,
|
|
191
|
+
error: "Invalid file content",
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
return {
|
|
195
|
+
success: true,
|
|
196
|
+
data: {
|
|
197
|
+
filename,
|
|
198
|
+
mimeType,
|
|
199
|
+
base64: content,
|
|
200
|
+
},
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
return {
|
|
205
|
+
success: false,
|
|
206
|
+
status: 400,
|
|
207
|
+
error: "Failed to decode file",
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
};
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2NvbGxlY3Rpb25zL1tpZF0vdGh1bWJuYWlsL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHFEQUErRTtBQUcvRSxrRUFBc0U7QUFDdEUsc0dBQXlHO0FBQ3pHLGlGQUFtRjtBQVVuRixNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQWtCLEVBQWMsRUFBRTtJQUN2RCxJQUFJLENBQUM7UUFDSCxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGlDQUF5QixDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxxQkFBcUIsR0FBRyxDQUM1QixNQUFlLEVBQ3lDLEVBQUU7SUFDMUQsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ1osT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQzFCLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFLENBQUM7WUFDM0IsTUFBTSxVQUFVLEdBQUcscUJBQXFCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDaEQsSUFBSSxVQUFVLEVBQUUsQ0FBQztnQkFDZixPQUFPLFVBQVUsQ0FBQztZQUNwQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQy9CLE9BQU8sTUFBb0QsQ0FBQztJQUM5RCxDQUFDO0lBRUQsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyxDQUFDO0FBRUssTUFBTSxHQUFHLEdBQUcsS0FBSyxFQUFFLEdBQWtCLEVBQUUs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lodashventure/medusa-collection-thumbnail",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.3",
|
|
4
4
|
"description": "Collection thumbnail management plugin for Medusa v2",
|
|
5
5
|
"author": "Lodashventure",
|
|
6
6
|
"license": "MIT",
|
|
@@ -16,11 +16,11 @@
|
|
|
16
16
|
],
|
|
17
17
|
"exports": {
|
|
18
18
|
"./package.json": "./package.json",
|
|
19
|
-
"./workflows": "./.medusa/server/workflows/index.js",
|
|
20
|
-
"./.medusa/server/src/modules/*": "./.medusa/server/modules/*/index.js",
|
|
21
|
-
"./modules/*": "./.medusa/server/modules/*/index.js",
|
|
19
|
+
"./workflows": "./.medusa/server/src/workflows/index.js",
|
|
20
|
+
"./.medusa/server/src/modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
21
|
+
"./modules/*": "./.medusa/server/src/modules/*/index.js",
|
|
22
22
|
"./admin": "./.medusa/server/src/admin/index.mjs",
|
|
23
|
-
"./*": "./.medusa/server/*.js"
|
|
23
|
+
"./*": "./.medusa/server/src/*.js"
|
|
24
24
|
},
|
|
25
25
|
"repository": {
|
|
26
26
|
"type": "git",
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
"@medusajs/admin-sdk": "2.11.2",
|
|
37
37
|
"@medusajs/framework": "2.11.2",
|
|
38
38
|
"@medusajs/icons": "2.11.2",
|
|
39
|
-
"@medusajs/ui": "*"
|
|
39
|
+
"@medusajs/ui": "*",
|
|
40
|
+
"yalc": "1.0.0-pre.53"
|
|
40
41
|
},
|
|
41
42
|
"peerDependencies": {
|
|
42
43
|
"@medusajs/admin-sdk": "2.11.2",
|
|
@@ -52,6 +53,7 @@
|
|
|
52
53
|
"@medusajs/cli": "2.11.2",
|
|
53
54
|
"@medusajs/medusa": "2.11.2",
|
|
54
55
|
"@medusajs/types": "2.11.2",
|
|
56
|
+
"@swc/core": "^1.5.7",
|
|
55
57
|
"@types/multer": "^2.0.0",
|
|
56
58
|
"@types/node": "^20.19.23",
|
|
57
59
|
"@types/react": "^18.3.2",
|