medusajs-documents-plugin 1.1.7 → 1.1.10
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/admin/documents/route.js +96 -60
- package/.medusa/server/src/api/admin/documents/settings/route.js +91 -37
- package/.medusa/server/src/modules/documents/service.js +189 -114
- package/.medusa/server/src/services/pdfkit-generator.js +54 -1
- package/CHANGELOG.md +28 -0
- package/README.md +10 -8
- package/package.json +2 -1
|
@@ -5,72 +5,108 @@ const documents_1 = require("../../../modules/documents");
|
|
|
5
5
|
const service_1 = require("../../../modules/documents/service");
|
|
6
6
|
// GET /admin/documents
|
|
7
7
|
async function GET(req, res) {
|
|
8
|
-
const documentService = req.scope.resolve(documents_1.DOCUMENTS_MODULE);
|
|
9
|
-
const manager = req.scope.resolve("manager", { allowUnregistered: true });
|
|
10
|
-
const sharedContext = manager ? { manager } : {};
|
|
11
|
-
const { type, source, status, search, take = 50, skip = 0 } = req.query;
|
|
12
|
-
const filters = {};
|
|
13
|
-
if (type && type !== "all")
|
|
14
|
-
filters.type = type;
|
|
15
|
-
if (source && source !== "all")
|
|
16
|
-
filters.source = source;
|
|
17
|
-
if (status && status !== "all")
|
|
18
|
-
filters.status = status;
|
|
19
|
-
let records = [];
|
|
20
|
-
let count = 0;
|
|
21
8
|
try {
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
9
|
+
const documentService = req.scope.resolve(documents_1.DOCUMENTS_MODULE);
|
|
10
|
+
const manager = req.scope.resolve("manager", { allowUnregistered: true });
|
|
11
|
+
const sharedContext = manager ? { manager } : {};
|
|
12
|
+
const { type, source, status, search, take = 50, skip = 0 } = req.query;
|
|
13
|
+
const filters = {};
|
|
14
|
+
if (type && type !== "all")
|
|
15
|
+
filters.type = type;
|
|
16
|
+
if (source && source !== "all")
|
|
17
|
+
filters.source = source;
|
|
18
|
+
if (status && status !== "all")
|
|
19
|
+
filters.status = status;
|
|
20
|
+
let records = [];
|
|
21
|
+
let count = 0;
|
|
32
22
|
try {
|
|
33
|
-
const
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
if (filters.status)
|
|
41
|
-
query = query.where({ status: filters.status });
|
|
42
|
-
const countResult = await query.clone().count("id as count").first();
|
|
43
|
-
count = Number(countResult?.count || 0);
|
|
44
|
-
records = await query
|
|
45
|
-
.orderBy("created_at", "desc")
|
|
46
|
-
.limit(Number(take))
|
|
47
|
-
.offset(Number(skip));
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
throw err;
|
|
51
|
-
}
|
|
23
|
+
const [fetchedRecords, fetchedCount] = await documentService.listAndCountDocumentRecords(filters, {
|
|
24
|
+
take: Number(take),
|
|
25
|
+
skip: Number(skip),
|
|
26
|
+
order: { created_at: "DESC" },
|
|
27
|
+
}, sharedContext);
|
|
28
|
+
records = fetchedRecords;
|
|
29
|
+
count = fetchedCount;
|
|
52
30
|
}
|
|
53
|
-
catch (
|
|
31
|
+
catch (err) {
|
|
32
|
+
if ((0, service_1.isUndefinedTableError)(err)) {
|
|
33
|
+
return res.json({
|
|
34
|
+
documents: [],
|
|
35
|
+
count: 0,
|
|
36
|
+
warning: "Migrations pending",
|
|
37
|
+
take: Number(take),
|
|
38
|
+
skip: Number(skip),
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
// Fallback: If MikroORM fork error occurs, query pg_connection directly
|
|
54
42
|
try {
|
|
55
|
-
|
|
43
|
+
const pgConnection = (0, service_1.getDatabaseConnection)(req.scope);
|
|
44
|
+
if (pgConnection) {
|
|
45
|
+
let query = pgConnection("document_record").whereNull("deleted_at");
|
|
46
|
+
if (filters.type)
|
|
47
|
+
query = query.where({ type: filters.type });
|
|
48
|
+
if (filters.source)
|
|
49
|
+
query = query.where({ source: filters.source });
|
|
50
|
+
if (filters.status)
|
|
51
|
+
query = query.where({ status: filters.status });
|
|
52
|
+
const countResult = await query.clone().count("id as count").first();
|
|
53
|
+
count = Number(countResult?.count || 0);
|
|
54
|
+
records = await query
|
|
55
|
+
.orderBy("created_at", "desc")
|
|
56
|
+
.limit(Number(take))
|
|
57
|
+
.offset(Number(skip));
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
throw err;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
catch (fallbackErr) {
|
|
64
|
+
if ((0, service_1.isUndefinedTableError)(fallbackErr) || (0, service_1.isUndefinedTableError)(err)) {
|
|
65
|
+
return res.json({
|
|
66
|
+
documents: [],
|
|
67
|
+
count: 0,
|
|
68
|
+
warning: "Migrations pending",
|
|
69
|
+
take: Number(take),
|
|
70
|
+
skip: Number(skip),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
try {
|
|
74
|
+
req.scope.resolve("logger", { allowUnregistered: true })?.error?.(`[Documents-API] Error listing documents: ${fallbackErr.message || err.message}`);
|
|
75
|
+
}
|
|
76
|
+
catch (_) { }
|
|
77
|
+
return res.status(500).json({ message: fallbackErr.message || err.message, error: true });
|
|
56
78
|
}
|
|
57
|
-
catch (_) { }
|
|
58
|
-
return res.status(500).json({ message: fallbackErr.message || err.message, error: true });
|
|
59
79
|
}
|
|
80
|
+
let filteredRecords = records;
|
|
81
|
+
if (search && typeof search === "string" && search.trim() !== "") {
|
|
82
|
+
const q = search.toLowerCase();
|
|
83
|
+
filteredRecords = records.filter((r) => r.display_id?.toLowerCase().includes(q) ||
|
|
84
|
+
r.customer_name?.toLowerCase().includes(q) ||
|
|
85
|
+
r.customer_email?.toLowerCase().includes(q) ||
|
|
86
|
+
r.title?.toLowerCase().includes(q));
|
|
87
|
+
}
|
|
88
|
+
return res.json({
|
|
89
|
+
documents: filteredRecords,
|
|
90
|
+
count: count || filteredRecords.length,
|
|
91
|
+
take: Number(take),
|
|
92
|
+
skip: Number(skip),
|
|
93
|
+
});
|
|
60
94
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
95
|
+
catch (outerErr) {
|
|
96
|
+
if ((0, service_1.isUndefinedTableError)(outerErr)) {
|
|
97
|
+
return res.json({
|
|
98
|
+
documents: [],
|
|
99
|
+
count: 0,
|
|
100
|
+
warning: "Migrations pending",
|
|
101
|
+
take: Number(req.query?.take || 50),
|
|
102
|
+
skip: Number(req.query?.skip || 0),
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
try {
|
|
106
|
+
req.scope.resolve("logger", { allowUnregistered: true })?.error?.(`[Documents-API] Error listing documents: ${outerErr.message}`);
|
|
107
|
+
}
|
|
108
|
+
catch (_) { }
|
|
109
|
+
return res.status(500).json({ message: outerErr.message, error: true });
|
|
68
110
|
}
|
|
69
|
-
res.json({
|
|
70
|
-
documents: filteredRecords,
|
|
71
|
-
count: count || filteredRecords.length,
|
|
72
|
-
take: Number(take),
|
|
73
|
-
skip: Number(skip),
|
|
74
|
-
});
|
|
75
111
|
}
|
|
76
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
112
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2RvY3VtZW50cy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVFBLGtCQTRHQztBQW5IRCwwREFBOEQ7QUFDOUQsZ0VBRzRDO0FBRTVDLHVCQUF1QjtBQUNoQixLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsSUFBSSxDQUFDO1FBQ0gsTUFBTSxlQUFlLEdBQTBCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDRCQUFnQixDQUFDLENBQUM7UUFFbkYsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxFQUFFLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUMxRSxNQUFNLGFBQWEsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUVqRCxNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLElBQUksR0FBRyxFQUFFLEVBQUUsSUFBSSxHQUFHLENBQUMsRUFBRSxHQUFHLEdBQUcsQ0FBQyxLQUFZLENBQUM7UUFFL0UsTUFBTSxPQUFPLEdBQXdCLEVBQUUsQ0FBQztRQUN4QyxJQUFJLElBQUksSUFBSSxJQUFJLEtBQUssS0FBSztZQUFFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2hELElBQUksTUFBTSxJQUFJLE1BQU0sS0FBSyxLQUFLO1lBQUUsT0FBTyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDeEQsSUFBSSxNQUFNLElBQUksTUFBTSxLQUFLLEtBQUs7WUFBRSxPQUFPLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUV4RCxJQUFJLE9BQU8sR0FBVSxFQUFFLENBQUM7UUFDeEIsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBRWQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxDQUFDLGNBQWMsRUFBRSxZQUFZLENBQUMsR0FBRyxNQUFNLGVBQWUsQ0FBQywyQkFBMkIsQ0FDdEYsT0FBTyxFQUNQO2dCQUNFLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNsQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztnQkFDbEIsS0FBSyxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTthQUM5QixFQUNELGFBQWEsQ0FDZCxDQUFDO1lBQ0YsT0FBTyxHQUFHLGNBQWMsQ0FBQztZQUN6QixLQUFLLEdBQUcsWUFBWSxDQUFDO1FBQ3ZCLENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksSUFBQSwrQkFBcUIsRUFBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUMvQixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7b0JBQ2QsU0FBUyxFQUFFLEVBQUU7b0JBQ2IsS0FBSyxFQUFFLENBQUM7b0JBQ1IsT0FBTyxFQUFFLG9CQUFvQjtvQkFDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7b0JBQ2xCLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDO2lCQUNuQixDQUFDLENBQUM7WUFDTCxDQUFDO1lBQ0Qsd0VBQXdFO1lBQ3hFLElBQUksQ0FBQztnQkFDSCxNQUFNLFlBQVksR0FBUSxJQUFBLCtCQUFxQixFQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0QsSUFBSSxZQUFZLEVBQUUsQ0FBQztvQkFDakIsSUFBSSxLQUFLLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLENBQUMsU0FBUyxDQUFDLFlBQVksQ0FBQyxDQUFDO29CQUNwRSxJQUFJLE9BQU8sQ0FBQyxJQUFJO3dCQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO29CQUM5RCxJQUFJLE9BQU8sQ0FBQyxNQUFNO3dCQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUNwRSxJQUFJLE9BQU8sQ0FBQyxNQUFNO3dCQUFFLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO29CQUVwRSxNQUFNLFdBQVcsR0FBRyxNQUFNLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ3JFLEtBQUssR0FBRyxNQUFNLENBQUMsV0FBVyxFQUFFLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztvQkFFeEMsT0FBTyxHQUFHLE1BQU0sS0FBSzt5QkFDbEIsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUM7eUJBQzdCLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7eUJBQ25CLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDMUIsQ0FBQztxQkFBTSxDQUFDO29CQUNOLE1BQU0sR0FBRyxDQUFDO2dCQUNaLENBQUM7WUFDSCxDQUFDO1lBQUMsT0FBTyxXQUFnQixFQUFFLENBQUM7Z0JBQzFCLElBQUksSUFBQSwrQkFBcUIsRUFBQyxXQUFXLENBQUMsSUFBSSxJQUFBLCtCQUFxQixFQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7b0JBQ3JFLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQzt3QkFDZCxTQUFTLEVBQUUsRUFBRTt3QkFDYixLQUFLLEVBQUUsQ0FBQzt3QkFDUixPQUFPLEVBQUUsb0JBQW9CO3dCQUM3QixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQzt3QkFDbEIsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUM7cUJBQ25CLENBQUMsQ0FBQztnQkFDTCxDQUFDO2dCQUNELElBQUksQ0FBQztvQkFDSCxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLDRDQUE0QyxXQUFXLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO2dCQUN0SixDQUFDO2dCQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQSxDQUFDO2dCQUNkLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsV0FBVyxDQUFDLE9BQU8sSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVGLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxlQUFlLEdBQUcsT0FBTyxDQUFDO1FBQzlCLElBQUksTUFBTSxJQUFJLE9BQU8sTUFBTSxLQUFLLFFBQVEsSUFBSSxNQUFNLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7WUFDakUsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQy9CLGVBQWUsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUM5QixDQUFDLENBQU0sRUFBRSxFQUFFLENBQ1QsQ0FBQyxDQUFDLFVBQVUsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO2dCQUN2QyxDQUFDLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7Z0JBQzFDLENBQUMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLEtBQUssRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQ3JDLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO1lBQ2QsU0FBUyxFQUFFLGVBQWU7WUFDMUIsS0FBSyxFQUFFLEtBQUssSUFBSSxlQUFlLENBQUMsTUFBTTtZQUN0QyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztZQUNsQixJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQztTQUNuQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBQUMsT0FBTyxRQUFhLEVBQUUsQ0FBQztRQUN2QixJQUFJLElBQUEsK0JBQXFCLEVBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUNwQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7Z0JBQ2QsU0FBUyxFQUFFLEVBQUU7Z0JBQ2IsS0FBSyxFQUFFLENBQUM7Z0JBQ1IsT0FBTyxFQUFFLG9CQUFvQjtnQkFDN0IsSUFBSSxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ25DLElBQUksRUFBRSxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO2FBQ25DLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUM7WUFDSCxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsRUFBRSxpQkFBaUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLDRDQUE0QyxRQUFRLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwSSxDQUFDO1FBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFBLENBQUM7UUFDZCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDMUUsQ0FBQztBQUNILENBQUMifQ==
|
|
@@ -13,33 +13,64 @@ async function GET(req, res) {
|
|
|
13
13
|
try {
|
|
14
14
|
const documentService = req.scope.resolve(documents_1.DOCUMENTS_MODULE);
|
|
15
15
|
const settings = await documentService.getSettings(sharedContext, req.scope);
|
|
16
|
-
|
|
16
|
+
const isDefault = settings?.id === "default";
|
|
17
|
+
return res.json({
|
|
18
|
+
settings,
|
|
19
|
+
success: true,
|
|
20
|
+
...(isDefault ? { warning: "Migrations pending" } : {}),
|
|
21
|
+
});
|
|
17
22
|
}
|
|
18
23
|
catch (err) {
|
|
24
|
+
if ((0, service_1.isUndefinedTableError)(err)) {
|
|
25
|
+
return res.json({
|
|
26
|
+
settings: { ...service_1.DEFAULT_DOCUMENT_SETTINGS },
|
|
27
|
+
success: true,
|
|
28
|
+
warning: "Migrations pending",
|
|
29
|
+
});
|
|
30
|
+
}
|
|
19
31
|
// Fallback: If MikroORM fork error occurs, query pg_connection directly
|
|
20
32
|
const pgConnection = (0, service_1.getDatabaseConnection)(req.scope);
|
|
21
33
|
if (pgConnection) {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
try {
|
|
35
|
+
let settings = await pgConnection("document_settings").whereNull("deleted_at").first();
|
|
36
|
+
if (!settings) {
|
|
37
|
+
const createdResult = await pgConnection("document_settings")
|
|
38
|
+
.insert({
|
|
39
|
+
id: (0, utils_1.generateEntityId)(undefined, "docset"),
|
|
40
|
+
company_name: "Store",
|
|
41
|
+
email_notifications_enabled: true,
|
|
42
|
+
sms_notifications_enabled: true,
|
|
43
|
+
whatsapp_notifications_enabled: true,
|
|
44
|
+
created_at: new Date(),
|
|
45
|
+
updated_at: new Date(),
|
|
46
|
+
})
|
|
47
|
+
.returning("*");
|
|
48
|
+
settings = Array.isArray(createdResult) ? createdResult[0] : createdResult;
|
|
49
|
+
}
|
|
50
|
+
return res.json({ settings, success: true });
|
|
51
|
+
}
|
|
52
|
+
catch (knexErr) {
|
|
53
|
+
if ((0, service_1.isUndefinedTableError)(knexErr)) {
|
|
54
|
+
return res.json({
|
|
55
|
+
settings: { ...service_1.DEFAULT_DOCUMENT_SETTINGS },
|
|
56
|
+
success: true,
|
|
57
|
+
warning: "Migrations pending",
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
throw knexErr;
|
|
36
61
|
}
|
|
37
|
-
return res.json({ settings, success: true });
|
|
38
62
|
}
|
|
39
63
|
throw err;
|
|
40
64
|
}
|
|
41
65
|
}
|
|
42
66
|
catch (err) {
|
|
67
|
+
if ((0, service_1.isUndefinedTableError)(err)) {
|
|
68
|
+
return res.json({
|
|
69
|
+
settings: { ...service_1.DEFAULT_DOCUMENT_SETTINGS },
|
|
70
|
+
success: true,
|
|
71
|
+
warning: "Migrations pending",
|
|
72
|
+
});
|
|
73
|
+
}
|
|
43
74
|
try {
|
|
44
75
|
req.scope.resolve("logger", { allowUnregistered: true })?.error?.(`[Documents-API] Error fetching settings: ${err.message}`);
|
|
45
76
|
}
|
|
@@ -72,30 +103,47 @@ async function POST(req, res) {
|
|
|
72
103
|
}
|
|
73
104
|
}
|
|
74
105
|
catch (err) {
|
|
106
|
+
if ((0, service_1.isUndefinedTableError)(err)) {
|
|
107
|
+
return res.status(400).json({
|
|
108
|
+
message: "Database table document_settings does not exist. Please run npx medusa db:migrate.",
|
|
109
|
+
error: true,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
75
112
|
// Fallback: If MikroORM fork error occurs, update via pg_connection directly
|
|
76
113
|
const pgConnection = (0, service_1.getDatabaseConnection)(req.scope);
|
|
77
114
|
if (pgConnection) {
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
115
|
+
try {
|
|
116
|
+
const existing = await pgConnection("document_settings").whereNull("deleted_at").first();
|
|
117
|
+
if (existing) {
|
|
118
|
+
const updatedResult = await pgConnection("document_settings")
|
|
119
|
+
.where({ id: existing.id })
|
|
120
|
+
.update({
|
|
121
|
+
...cleanData,
|
|
122
|
+
updated_at: new Date(),
|
|
123
|
+
})
|
|
124
|
+
.returning("*");
|
|
125
|
+
settings = Array.isArray(updatedResult) ? updatedResult[0] : updatedResult;
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
const createdResult = await pgConnection("document_settings")
|
|
129
|
+
.insert({
|
|
130
|
+
id: (0, utils_1.generateEntityId)(undefined, "docset"),
|
|
131
|
+
...cleanData,
|
|
132
|
+
created_at: new Date(),
|
|
133
|
+
updated_at: new Date(),
|
|
134
|
+
})
|
|
135
|
+
.returning("*");
|
|
136
|
+
settings = Array.isArray(createdResult) ? createdResult[0] : createdResult;
|
|
137
|
+
}
|
|
88
138
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
.
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
.returning("*");
|
|
98
|
-
settings = Array.isArray(createdResult) ? createdResult[0] : createdResult;
|
|
139
|
+
catch (knexErr) {
|
|
140
|
+
if ((0, service_1.isUndefinedTableError)(knexErr)) {
|
|
141
|
+
return res.status(400).json({
|
|
142
|
+
message: "Database table document_settings does not exist. Please run npx medusa db:migrate.",
|
|
143
|
+
error: true,
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
throw knexErr;
|
|
99
147
|
}
|
|
100
148
|
}
|
|
101
149
|
else {
|
|
@@ -105,6 +153,12 @@ async function POST(req, res) {
|
|
|
105
153
|
return res.json({ settings, success: true });
|
|
106
154
|
}
|
|
107
155
|
catch (err) {
|
|
156
|
+
if ((0, service_1.isUndefinedTableError)(err)) {
|
|
157
|
+
return res.status(400).json({
|
|
158
|
+
message: "Database table document_settings does not exist. Please run npx medusa db:migrate.",
|
|
159
|
+
error: true,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
108
162
|
try {
|
|
109
163
|
req.scope.resolve("logger", { allowUnregistered: true })?.error?.(`[Documents-API] Error updating settings: ${err.message}`);
|
|
110
164
|
}
|
|
@@ -112,4 +166,4 @@ async function POST(req, res) {
|
|
|
112
166
|
return res.status(500).json({ message: err.message, error: true });
|
|
113
167
|
}
|
|
114
168
|
}
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
169
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL2FkbWluL2RvY3VtZW50cy9zZXR0aW5ncy9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQVVBLGtCQW9FQztBQUdELG9CQXFGQztBQXJLRCxxREFBNkQ7QUFDN0QsNkRBQWlFO0FBQ2pFLG1FQUkrQztBQUUvQyxnQ0FBZ0M7QUFDekIsS0FBSyxVQUFVLEdBQUcsQ0FBQyxHQUFrQixFQUFFLEdBQW1CO0lBQy9ELElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFNBQVMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7UUFDMUUsTUFBTSxhQUFhLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFakQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxlQUFlLEdBQTBCLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLDRCQUFnQixDQUFDLENBQUM7WUFDbkYsTUFBTSxRQUFRLEdBQUcsTUFBTSxlQUFlLENBQUMsV0FBVyxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDN0UsTUFBTSxTQUFTLEdBQUcsUUFBUSxFQUFFLEVBQUUsS0FBSyxTQUFTLENBQUM7WUFDN0MsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDO2dCQUNkLFFBQVE7Z0JBQ1IsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3hELENBQUMsQ0FBQztRQUNMLENBQUM7UUFBQyxPQUFPLEdBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksSUFBQSwrQkFB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
|