nodebb-plugin-onekite-calendar 2.0.87 → 2.0.88
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/lib/admin.js +30 -6
- package/package.json +1 -1
package/lib/admin.js
CHANGED
|
@@ -180,6 +180,19 @@ admin.approveReservation = async function (req, res) {
|
|
|
180
180
|
|
|
181
181
|
await dbLayer.saveReservation(r);
|
|
182
182
|
|
|
183
|
+
// Audit
|
|
184
|
+
try {
|
|
185
|
+
const year = new Date().getFullYear();
|
|
186
|
+
await dbLayer.addAuditEntry({
|
|
187
|
+
ts: Date.now(), year, action: 'reservation_approved',
|
|
188
|
+
targetType: 'reservation', targetId: String(rid),
|
|
189
|
+
reservationUid: Number(r.uid) || 0,
|
|
190
|
+
reservationUsername: String(r.username || ''),
|
|
191
|
+
actorUid: req.uid || 0,
|
|
192
|
+
actorUsername: r.approvedByUsername || '',
|
|
193
|
+
});
|
|
194
|
+
} catch (e) {}
|
|
195
|
+
|
|
183
196
|
// Real-time refresh for all viewers
|
|
184
197
|
realtime.emitCalendarUpdated({ kind: 'reservation', action: 'approved', rid: String(rid), status: r.status });
|
|
185
198
|
|
|
@@ -259,7 +272,6 @@ admin.markReservationPaid = async function (req, res) {
|
|
|
259
272
|
const requesterUid = parseInt(r.uid, 10);
|
|
260
273
|
const requester = await user.getUserFields(requesterUid, ['username']);
|
|
261
274
|
if (requesterUid) {
|
|
262
|
-
const { sendEmail, formatFR, buildCalendarLinks } = shared;
|
|
263
275
|
await sendEmail('calendar-onekite_paid', requesterUid, 'Location matériel - Paiement reçu', {
|
|
264
276
|
uid: requesterUid,
|
|
265
277
|
username: requester && requester.username ? requester.username : '',
|
|
@@ -294,6 +306,19 @@ admin.refuseReservation = async function (req, res) {
|
|
|
294
306
|
r.refusedReason = String((req.body && (req.body.reason || req.body.refusedReason || req.body.refuseReason)) || '').trim();
|
|
295
307
|
await dbLayer.saveReservation(r);
|
|
296
308
|
|
|
309
|
+
// Audit
|
|
310
|
+
try {
|
|
311
|
+
const year = new Date().getFullYear();
|
|
312
|
+
await dbLayer.addAuditEntry({
|
|
313
|
+
ts: Date.now(), year, action: 'reservation_refused',
|
|
314
|
+
targetType: 'reservation', targetId: String(rid),
|
|
315
|
+
reservationUid: Number(r.uid) || 0,
|
|
316
|
+
reservationUsername: String(r.username || ''),
|
|
317
|
+
actorUid: req.uid || 0,
|
|
318
|
+
refusedReason: r.refusedReason || '',
|
|
319
|
+
});
|
|
320
|
+
} catch (e) {}
|
|
321
|
+
|
|
297
322
|
// Real-time refresh for all viewers
|
|
298
323
|
realtime.emitCalendarUpdated({ kind: 'reservation', action: 'refused', rid: String(rid), status: r.status });
|
|
299
324
|
|
|
@@ -327,12 +352,11 @@ admin.purgeByYear = async function (req, res) {
|
|
|
327
352
|
const endTs = new Date(Date.UTC(y + 1, 0, 1)).getTime() - 1;
|
|
328
353
|
|
|
329
354
|
const ids = await dbLayer.listReservationIdsByStartRange(startTs, endTs, 100000);
|
|
355
|
+
const rows = ids && ids.length ? await dbLayer.getReservations(ids) : [];
|
|
330
356
|
let removed = 0;
|
|
331
|
-
for (
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
await dbLayer.removeReservation(rid);
|
|
357
|
+
for (let i = 0; i < ids.length; i++) {
|
|
358
|
+
if (!rows[i]) continue;
|
|
359
|
+
await dbLayer.removeReservation(ids[i]);
|
|
336
360
|
removed++;
|
|
337
361
|
}
|
|
338
362
|
try {
|
package/package.json
CHANGED