powr-sdk-api 4.3.13 → 4.4.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/dist/routes/forms.js +8 -5
- package/dist/routes/index.js +1 -1
- package/package.json +9 -7
- package/dist/admin/activities.js +0 -81
- package/dist/admin/auth.js +0 -234
- package/dist/admin/blogs.js +0 -94
- package/dist/admin/comments.js +0 -83
- package/dist/admin/files.js +0 -56
- package/dist/admin/forms.js +0 -242
- package/dist/admin/index.js +0 -53
- package/dist/admin/invoice.js +0 -163
- package/dist/admin/likes.js +0 -126
- package/dist/admin/notifications.js +0 -93
- package/dist/admin/plexx.js +0 -53
- package/dist/admin/ratings.js +0 -189
- package/dist/admin/routes.js +0 -132
- package/dist/admin/slides.js +0 -101
- package/dist/admin/users.js +0 -175
- package/dist/admin/waitlists.js +0 -94
- package/dist/routes/admin/index.js +0 -520
- package/dist/routes/blogs.js +0 -94
- package/dist/routes/invoice.js +0 -167
- package/dist/routes/plexx.js +0 -269
- package/dist/routes/routes.js +0 -143
- package/dist/services/dbService.js +0 -42
- package/dist/services/functions.js +0 -229
- package/dist/services/plexx.js +0 -229
package/dist/routes/invoice.js
DELETED
|
@@ -1,167 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const express = require('express');
|
|
4
|
-
const router = express.Router();
|
|
5
|
-
const {
|
|
6
|
-
getDb
|
|
7
|
-
} = require("../services/mongo");
|
|
8
|
-
const {
|
|
9
|
-
ObjectId
|
|
10
|
-
} = require("mongodb");
|
|
11
|
-
router.get('/', async (req, res) => {
|
|
12
|
-
const {
|
|
13
|
-
projectId
|
|
14
|
-
} = req.query;
|
|
15
|
-
try {
|
|
16
|
-
const query = {
|
|
17
|
-
projectId
|
|
18
|
-
};
|
|
19
|
-
if (!projectId) {
|
|
20
|
-
return res.status(400).json({
|
|
21
|
-
success: false,
|
|
22
|
-
message: 'projectId is required.'
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
const db = await getDb();
|
|
26
|
-
const invoiceData = await db.collection("invoices").find(query).toArray();
|
|
27
|
-
return res.status(200).json({
|
|
28
|
-
success: true,
|
|
29
|
-
invoices: invoiceData
|
|
30
|
-
});
|
|
31
|
-
} catch (error) {
|
|
32
|
-
console.error("Error retrieving invoices :", error);
|
|
33
|
-
return res.status(500).json({
|
|
34
|
-
success: false,
|
|
35
|
-
message: "Failed to retrieve invoices ."
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
router.get('/:invoiceId', async (req, res) => {
|
|
40
|
-
const {
|
|
41
|
-
invoiceId
|
|
42
|
-
} = req.params;
|
|
43
|
-
const {
|
|
44
|
-
projectId
|
|
45
|
-
} = req.query;
|
|
46
|
-
try {
|
|
47
|
-
if (!projectId) {
|
|
48
|
-
return res.status(400).json({
|
|
49
|
-
success: false,
|
|
50
|
-
message: 'projectId is required.'
|
|
51
|
-
});
|
|
52
|
-
}
|
|
53
|
-
const _id = new ObjectId(invoiceId);
|
|
54
|
-
const db = await getDb();
|
|
55
|
-
const invoiceData = await db.collection("invoices").findOne({
|
|
56
|
-
_id,
|
|
57
|
-
projectId
|
|
58
|
-
});
|
|
59
|
-
return res.status(200).json({
|
|
60
|
-
success: true,
|
|
61
|
-
invoice: invoiceData
|
|
62
|
-
});
|
|
63
|
-
} catch (error) {
|
|
64
|
-
console.error("Error retrieving invoice :", error);
|
|
65
|
-
return res.status(500).json({
|
|
66
|
-
success: false,
|
|
67
|
-
message: "Failed to retrieve invoice."
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
});
|
|
71
|
-
router.post('/', async (req, res) => {
|
|
72
|
-
const {
|
|
73
|
-
projectId
|
|
74
|
-
} = req.query;
|
|
75
|
-
const {
|
|
76
|
-
invoiceNumber,
|
|
77
|
-
dateOfIssue,
|
|
78
|
-
paymentStatus,
|
|
79
|
-
customerInfo,
|
|
80
|
-
serviceSection,
|
|
81
|
-
paymentSection
|
|
82
|
-
} = req.body;
|
|
83
|
-
if (!projectId) {
|
|
84
|
-
return res.status(400).json({
|
|
85
|
-
success: false,
|
|
86
|
-
message: "projectId is required."
|
|
87
|
-
});
|
|
88
|
-
}
|
|
89
|
-
const invoice = {
|
|
90
|
-
invoiceNumber,
|
|
91
|
-
dateOfIssue,
|
|
92
|
-
paymentStatus,
|
|
93
|
-
customerInfo,
|
|
94
|
-
serviceSection,
|
|
95
|
-
paymentSection,
|
|
96
|
-
createdAt: new Date()
|
|
97
|
-
};
|
|
98
|
-
invoice.projectId = projectId;
|
|
99
|
-
try {
|
|
100
|
-
const db = await getDb();
|
|
101
|
-
const result = await db.collection("invoices").insertOne(invoice);
|
|
102
|
-
if (result && result.insertedId) {
|
|
103
|
-
return res.status(201).json({
|
|
104
|
-
success: true,
|
|
105
|
-
message: "Invoice created successfully.",
|
|
106
|
-
invoiceId: result.insertedId,
|
|
107
|
-
invoice
|
|
108
|
-
});
|
|
109
|
-
} else {
|
|
110
|
-
return res.status(500).json({
|
|
111
|
-
success: false,
|
|
112
|
-
message: "Invoice could not be added."
|
|
113
|
-
});
|
|
114
|
-
}
|
|
115
|
-
} catch (error) {
|
|
116
|
-
console.error("Error adding invoice:", error);
|
|
117
|
-
return res.status(500).json({
|
|
118
|
-
success: false,
|
|
119
|
-
message: "Failed to add invoice due to a server error."
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
router.put('/:invoiceId', async (req, res) => {
|
|
124
|
-
const {
|
|
125
|
-
invoiceId
|
|
126
|
-
} = req.params;
|
|
127
|
-
const {
|
|
128
|
-
projectId
|
|
129
|
-
} = req.query;
|
|
130
|
-
if (!projectId) {
|
|
131
|
-
return res.status(400).json({
|
|
132
|
-
success: false,
|
|
133
|
-
message: "projectId is required."
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
let filter;
|
|
137
|
-
try {
|
|
138
|
-
filter = {
|
|
139
|
-
_id: new ObjectId(invoiceId),
|
|
140
|
-
projectId: projectId
|
|
141
|
-
};
|
|
142
|
-
} catch (e) {
|
|
143
|
-
return res.status(400).json({
|
|
144
|
-
success: false,
|
|
145
|
-
message: "Invalid invoiceId format."
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
const updateData = req.body;
|
|
149
|
-
try {
|
|
150
|
-
const db = await getDb();
|
|
151
|
-
const result = await db.collection("invoices").updateOne(filter, {
|
|
152
|
-
$set: updateData
|
|
153
|
-
});
|
|
154
|
-
return res.status(200).json({
|
|
155
|
-
success: true,
|
|
156
|
-
message: "Invoice updated successfully.",
|
|
157
|
-
result: result
|
|
158
|
-
});
|
|
159
|
-
} catch (error) {
|
|
160
|
-
console.error("Error updating invoice:", error);
|
|
161
|
-
return res.status(500).json({
|
|
162
|
-
success: false,
|
|
163
|
-
message: "Failed to update invoice due to a server error."
|
|
164
|
-
});
|
|
165
|
-
}
|
|
166
|
-
});
|
|
167
|
-
module.exports = router;
|
package/dist/routes/plexx.js
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const express = require("express");
|
|
4
|
-
const router = express.Router();
|
|
5
|
-
const plexxManager = require("../services/plexx");
|
|
6
|
-
const {
|
|
7
|
-
getDb
|
|
8
|
-
} = require("../services/mongo");
|
|
9
|
-
|
|
10
|
-
// Get Plexx status
|
|
11
|
-
router.get("/status", async (req, res) => {
|
|
12
|
-
try {
|
|
13
|
-
const stats = plexxManager.getStats();
|
|
14
|
-
return res.status(200).json({
|
|
15
|
-
success: true,
|
|
16
|
-
data: {
|
|
17
|
-
...stats,
|
|
18
|
-
message: stats.isEnabled ? "Plexx is running" : "Plexx is disabled"
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
} catch (err) {
|
|
22
|
-
console.error("Error getting Plexx status:", err);
|
|
23
|
-
return res.status(500).json({
|
|
24
|
-
success: false,
|
|
25
|
-
message: "Error getting Plexx status"
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
// Enable Plexx
|
|
31
|
-
router.post("/enable", async (req, res) => {
|
|
32
|
-
try {
|
|
33
|
-
plexxManager.enable();
|
|
34
|
-
return res.status(200).json({
|
|
35
|
-
success: true,
|
|
36
|
-
message: "Plexx enabled successfully",
|
|
37
|
-
data: plexxManager.getStats()
|
|
38
|
-
});
|
|
39
|
-
} catch (err) {
|
|
40
|
-
console.error("Error enabling Plexx:", err);
|
|
41
|
-
return res.status(500).json({
|
|
42
|
-
success: false,
|
|
43
|
-
message: "Error enabling Plexx"
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
});
|
|
47
|
-
|
|
48
|
-
// Disable Plexx
|
|
49
|
-
router.post("/disable", async (req, res) => {
|
|
50
|
-
try {
|
|
51
|
-
plexxManager.disable();
|
|
52
|
-
return res.status(200).json({
|
|
53
|
-
success: true,
|
|
54
|
-
message: "Plexx disabled successfully",
|
|
55
|
-
data: plexxManager.getStats()
|
|
56
|
-
});
|
|
57
|
-
} catch (err) {
|
|
58
|
-
console.error("Error disabling Plexx:", err);
|
|
59
|
-
return res.status(500).json({
|
|
60
|
-
success: false,
|
|
61
|
-
message: "Error disabling Plexx"
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
|
|
66
|
-
// Toggle Plexx
|
|
67
|
-
router.post("/toggle", async (req, res) => {
|
|
68
|
-
try {
|
|
69
|
-
const isEnabled = plexxManager.toggle();
|
|
70
|
-
return res.status(200).json({
|
|
71
|
-
success: true,
|
|
72
|
-
message: isEnabled ? "Plexx enabled" : "Plexx disabled",
|
|
73
|
-
data: plexxManager.getStats()
|
|
74
|
-
});
|
|
75
|
-
} catch (err) {
|
|
76
|
-
console.error("Error toggling Plexx:", err);
|
|
77
|
-
return res.status(500).json({
|
|
78
|
-
success: false,
|
|
79
|
-
message: "Error toggling Plexx"
|
|
80
|
-
});
|
|
81
|
-
}
|
|
82
|
-
});
|
|
83
|
-
|
|
84
|
-
// CRUD Operations for Routes
|
|
85
|
-
|
|
86
|
-
// Get all routes entries
|
|
87
|
-
router.get('/routes', async (req, res) => {
|
|
88
|
-
const {
|
|
89
|
-
projectId
|
|
90
|
-
} = req.query;
|
|
91
|
-
try {
|
|
92
|
-
const query = {
|
|
93
|
-
projectId
|
|
94
|
-
};
|
|
95
|
-
if (!projectId) {
|
|
96
|
-
return res.status(400).json({
|
|
97
|
-
success: false,
|
|
98
|
-
message: 'projectId is required.'
|
|
99
|
-
});
|
|
100
|
-
}
|
|
101
|
-
const db = await getDb();
|
|
102
|
-
const routesData = await db.collection("routes").find(query).toArray();
|
|
103
|
-
return res.status(200).json({
|
|
104
|
-
success: true,
|
|
105
|
-
allroutes: routesData
|
|
106
|
-
});
|
|
107
|
-
} catch (error) {
|
|
108
|
-
console.error("Error retrieving routes entries:", error);
|
|
109
|
-
return res.status(500).json({
|
|
110
|
-
success: false,
|
|
111
|
-
message: "Failed to retrieve routes entries."
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
});
|
|
115
|
-
|
|
116
|
-
// Create a new route
|
|
117
|
-
router.post('/routes', async (req, res) => {
|
|
118
|
-
try {
|
|
119
|
-
const {
|
|
120
|
-
projectId
|
|
121
|
-
} = req.query;
|
|
122
|
-
if (!projectId) {
|
|
123
|
-
return res.status(400).json({
|
|
124
|
-
success: false,
|
|
125
|
-
message: 'projectId is required.'
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
const newRoute = req.body;
|
|
129
|
-
newRoute.projectId = projectId;
|
|
130
|
-
if (!newRoute || Object.keys(newRoute).length === 0) {
|
|
131
|
-
return res.status(400).json({
|
|
132
|
-
success: false,
|
|
133
|
-
message: 'Request body is empty or invalid.'
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
const db = await getDb();
|
|
137
|
-
const result = await db.collection('routes').insertOne(newRoute);
|
|
138
|
-
|
|
139
|
-
// Recompile the new route using Plexx manager (only if enabled)
|
|
140
|
-
if (plexxManager.getStats().isEnabled) {
|
|
141
|
-
await plexxManager.updateRoute(projectId, newRoute.route, newRoute.code);
|
|
142
|
-
}
|
|
143
|
-
return res.status(201).json({
|
|
144
|
-
success: true,
|
|
145
|
-
entry: result.ops ? result.ops[0] : newRoute
|
|
146
|
-
});
|
|
147
|
-
} catch (error) {
|
|
148
|
-
console.error('Error inserting route entry:', error);
|
|
149
|
-
return res.status(500).json({
|
|
150
|
-
success: false,
|
|
151
|
-
message: 'Failed to insert route entry.'
|
|
152
|
-
});
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
|
|
156
|
-
// Update route code
|
|
157
|
-
router.put('/routes/:route', async (req, res) => {
|
|
158
|
-
try {
|
|
159
|
-
const {
|
|
160
|
-
route
|
|
161
|
-
} = req.params;
|
|
162
|
-
const {
|
|
163
|
-
code
|
|
164
|
-
} = req.body;
|
|
165
|
-
const {
|
|
166
|
-
projectId
|
|
167
|
-
} = req.query;
|
|
168
|
-
if (!projectId) {
|
|
169
|
-
return res.status(400).json({
|
|
170
|
-
success: false,
|
|
171
|
-
message: 'projectId is required.'
|
|
172
|
-
});
|
|
173
|
-
}
|
|
174
|
-
if (!code) {
|
|
175
|
-
return res.status(400).json({
|
|
176
|
-
success: false,
|
|
177
|
-
message: 'Code field is required.'
|
|
178
|
-
});
|
|
179
|
-
}
|
|
180
|
-
const query = {
|
|
181
|
-
route,
|
|
182
|
-
projectId
|
|
183
|
-
};
|
|
184
|
-
const db = await getDb();
|
|
185
|
-
const existingRoute = await db.collection('routes').findOne(query);
|
|
186
|
-
if (!existingRoute) {
|
|
187
|
-
return res.status(404).json({
|
|
188
|
-
success: false,
|
|
189
|
-
message: 'Route not found.'
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
// Update database
|
|
194
|
-
const result = await db.collection('routes').updateOne(query, {
|
|
195
|
-
$set: {
|
|
196
|
-
code
|
|
197
|
-
}
|
|
198
|
-
});
|
|
199
|
-
if (result.matchedCount === 0) {
|
|
200
|
-
return res.status(404).json({
|
|
201
|
-
success: false,
|
|
202
|
-
message: 'Route not found.'
|
|
203
|
-
});
|
|
204
|
-
}
|
|
205
|
-
|
|
206
|
-
// Recompile the updated route using Plexx manager (only if enabled)
|
|
207
|
-
if (plexxManager.getStats().isEnabled) {
|
|
208
|
-
await plexxManager.updateRoute(projectId, route, code);
|
|
209
|
-
}
|
|
210
|
-
const updatedRoute = await db.collection('routes').findOne(query);
|
|
211
|
-
return res.status(200).json({
|
|
212
|
-
success: true,
|
|
213
|
-
entry: updatedRoute
|
|
214
|
-
});
|
|
215
|
-
} catch (error) {
|
|
216
|
-
console.error('Error updating route code:', error);
|
|
217
|
-
return res.status(500).json({
|
|
218
|
-
success: false,
|
|
219
|
-
message: 'Failed to update route code.',
|
|
220
|
-
error: error.message
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
|
-
});
|
|
224
|
-
|
|
225
|
-
// Execute dynamic route
|
|
226
|
-
router.post("/:route", async (req, res) => {
|
|
227
|
-
const {
|
|
228
|
-
route
|
|
229
|
-
} = req.params;
|
|
230
|
-
const {
|
|
231
|
-
projectId
|
|
232
|
-
} = req.query;
|
|
233
|
-
if (!projectId) {
|
|
234
|
-
return res.status(400).json({
|
|
235
|
-
success: false,
|
|
236
|
-
message: 'projectId is required.'
|
|
237
|
-
});
|
|
238
|
-
}
|
|
239
|
-
try {
|
|
240
|
-
// Use pre-compiled function (NO COMPILATION HERE)
|
|
241
|
-
const params = {
|
|
242
|
-
...req.query,
|
|
243
|
-
...req.body
|
|
244
|
-
};
|
|
245
|
-
const result = await plexxManager.execute(projectId, route, params);
|
|
246
|
-
|
|
247
|
-
// Handle the standardized response format
|
|
248
|
-
if (result.success) {
|
|
249
|
-
return res.status(200).json({
|
|
250
|
-
success: true,
|
|
251
|
-
data: result.data,
|
|
252
|
-
message: result.message
|
|
253
|
-
});
|
|
254
|
-
} else {
|
|
255
|
-
return res.status(404).json({
|
|
256
|
-
success: false,
|
|
257
|
-
message: result.message,
|
|
258
|
-
data: result.data
|
|
259
|
-
});
|
|
260
|
-
}
|
|
261
|
-
} catch (err) {
|
|
262
|
-
console.error("Error executing logic:", err);
|
|
263
|
-
return res.status(500).json({
|
|
264
|
-
success: false,
|
|
265
|
-
message: "Error executing logic"
|
|
266
|
-
});
|
|
267
|
-
}
|
|
268
|
-
});
|
|
269
|
-
module.exports = router;
|
package/dist/routes/routes.js
DELETED
|
@@ -1,143 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const express = require("express");
|
|
4
|
-
const router = express.Router();
|
|
5
|
-
const {
|
|
6
|
-
getDb
|
|
7
|
-
} = require("../services/mongo");
|
|
8
|
-
|
|
9
|
-
// Get all routes entries
|
|
10
|
-
router.get('/', async (req, res) => {
|
|
11
|
-
const {
|
|
12
|
-
projectId
|
|
13
|
-
} = req.query;
|
|
14
|
-
try {
|
|
15
|
-
const query = {
|
|
16
|
-
projectId
|
|
17
|
-
};
|
|
18
|
-
if (!projectId) {
|
|
19
|
-
return res.status(400).json({
|
|
20
|
-
success: false,
|
|
21
|
-
message: 'projectId is required.'
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
const db = await getDb();
|
|
25
|
-
const routesData = await db.collection("routes").find(query).toArray();
|
|
26
|
-
return res.status(200).json({
|
|
27
|
-
success: true,
|
|
28
|
-
allroutes: routesData
|
|
29
|
-
});
|
|
30
|
-
} catch (error) {
|
|
31
|
-
console.error("Error retrieving routes entries:", error);
|
|
32
|
-
return res.status(500).json({
|
|
33
|
-
success: false,
|
|
34
|
-
message: "Failed to retrieve routes entries."
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
|
|
39
|
-
// Create a new route
|
|
40
|
-
router.post('/', async (req, res) => {
|
|
41
|
-
try {
|
|
42
|
-
const {
|
|
43
|
-
projectId
|
|
44
|
-
} = req.query;
|
|
45
|
-
if (!projectId) {
|
|
46
|
-
return res.status(400).json({
|
|
47
|
-
success: false,
|
|
48
|
-
message: 'projectId is required.'
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
const newRoute = req.body;
|
|
52
|
-
newRoute.projectId = projectId;
|
|
53
|
-
if (!newRoute || Object.keys(newRoute).length === 0) {
|
|
54
|
-
return res.status(400).json({
|
|
55
|
-
success: false,
|
|
56
|
-
message: 'Request body is empty or invalid.'
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
const db = await getDb();
|
|
60
|
-
const result = await db.collection('routes').insertOne(newRoute);
|
|
61
|
-
return res.status(201).json({
|
|
62
|
-
success: true,
|
|
63
|
-
entry: result.ops ? result.ops[0] : newRoute
|
|
64
|
-
});
|
|
65
|
-
} catch (error) {
|
|
66
|
-
console.error('Error inserting route entry:', error);
|
|
67
|
-
return res.status(500).json({
|
|
68
|
-
success: false,
|
|
69
|
-
message: 'Failed to insert route entry.'
|
|
70
|
-
});
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
|
|
74
|
-
// Update route code
|
|
75
|
-
router.put('/:route', async (req, res) => {
|
|
76
|
-
try {
|
|
77
|
-
const {
|
|
78
|
-
route
|
|
79
|
-
} = req.params;
|
|
80
|
-
const {
|
|
81
|
-
code
|
|
82
|
-
} = req.body;
|
|
83
|
-
const {
|
|
84
|
-
projectId
|
|
85
|
-
} = req.query;
|
|
86
|
-
if (!projectId) {
|
|
87
|
-
return res.status(400).json({
|
|
88
|
-
success: false,
|
|
89
|
-
message: 'projectId is required.'
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
if (!code) {
|
|
93
|
-
return res.status(400).json({
|
|
94
|
-
success: false,
|
|
95
|
-
message: 'Code field is required.'
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
const query = {
|
|
99
|
-
route,
|
|
100
|
-
projectId
|
|
101
|
-
};
|
|
102
|
-
const db = await getDb();
|
|
103
|
-
const existingRoute = await db.collection('routes').findOne(query);
|
|
104
|
-
if (!existingRoute) {
|
|
105
|
-
return res.status(404).json({
|
|
106
|
-
success: false,
|
|
107
|
-
message: 'Route not found.'
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
// Update database
|
|
112
|
-
const result = await db.collection('routes').updateOne(query, {
|
|
113
|
-
$set: {
|
|
114
|
-
code
|
|
115
|
-
}
|
|
116
|
-
});
|
|
117
|
-
if (result.matchedCount === 0) {
|
|
118
|
-
return res.status(404).json({
|
|
119
|
-
success: false,
|
|
120
|
-
message: 'Route not found.'
|
|
121
|
-
});
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
// Recompile the updated route using Plexx manager (only if enabled)
|
|
125
|
-
const plexxManager = require('../services/plexx');
|
|
126
|
-
if (plexxManager.getStats().isEnabled) {
|
|
127
|
-
await plexxManager.updateRoute(projectId, route, code);
|
|
128
|
-
}
|
|
129
|
-
const updatedRoute = await db.collection('routes').findOne(query);
|
|
130
|
-
return res.status(200).json({
|
|
131
|
-
success: true,
|
|
132
|
-
entry: updatedRoute
|
|
133
|
-
});
|
|
134
|
-
} catch (error) {
|
|
135
|
-
console.error('Error updating route code:', error);
|
|
136
|
-
return res.status(500).json({
|
|
137
|
-
success: false,
|
|
138
|
-
message: 'Failed to update route code.',
|
|
139
|
-
error: error.message
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
module.exports = router;
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
const {
|
|
4
|
-
MongoClient
|
|
5
|
-
} = require('mongodb');
|
|
6
|
-
const {
|
|
7
|
-
config
|
|
8
|
-
} = require('../config');
|
|
9
|
-
const mongoClient = new MongoClient(config.mongoUri, {
|
|
10
|
-
maxPoolSize: 10,
|
|
11
|
-
serverSelectionTimeoutMS: 5000,
|
|
12
|
-
socketTimeoutMS: 45000
|
|
13
|
-
});
|
|
14
|
-
let db;
|
|
15
|
-
async function connect() {
|
|
16
|
-
try {
|
|
17
|
-
await mongoClient.connect();
|
|
18
|
-
db = mongoClient.db();
|
|
19
|
-
console.log("Connected to MongoDB via SDK");
|
|
20
|
-
} catch (error) {
|
|
21
|
-
console.error("Failed to connect to MongoDB:", error);
|
|
22
|
-
process.exit(1);
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function getDb() {
|
|
26
|
-
if (!db) {
|
|
27
|
-
throw new Error("Database not initialized. Call connectToMongo() first.");
|
|
28
|
-
}
|
|
29
|
-
return db;
|
|
30
|
-
}
|
|
31
|
-
const closeConnection = async () => {
|
|
32
|
-
if (mongoClient) {
|
|
33
|
-
await mongoClient.close();
|
|
34
|
-
db = null;
|
|
35
|
-
console.log('✅ MongoDB connection closed');
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
module.exports = {
|
|
39
|
-
connect,
|
|
40
|
-
getDb,
|
|
41
|
-
closeConnection
|
|
42
|
-
};
|