new features
This commit is contained in:
@@ -269,22 +269,16 @@ router.delete(
|
|||||||
// Reset / Truncate endpoints (no olderThanDays, just ?confirm=true)
|
// Reset / Truncate endpoints (no olderThanDays, just ?confirm=true)
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
|
|
||||||
type ResetTarget = 'reset-bestellungen' | 'reset-ausruestung-anfragen' | 'reset-issues' | 'issues-all';
|
const RESET_TARGETS: Record<string, (confirm: boolean) => Promise<{ count: number; deleted: boolean }>> = {
|
||||||
|
|
||||||
const RESET_TARGETS: Record<ResetTarget, (confirm: boolean) => Promise<{ count: number; deleted: boolean }>> = {
|
|
||||||
'reset-bestellungen': (c) => cleanupService.resetBestellungenSequence(c),
|
'reset-bestellungen': (c) => cleanupService.resetBestellungenSequence(c),
|
||||||
'reset-ausruestung-anfragen': (c) => cleanupService.resetAusruestungAnfragenSequence(c),
|
'reset-ausruestung-anfragen': (c) => cleanupService.resetAusruestungAnfragenSequence(c),
|
||||||
'reset-issues': (c) => cleanupService.resetIssuesSequence(c),
|
'reset-issues': (c) => cleanupService.resetIssuesSequence(c),
|
||||||
'issues-all': (c) => cleanupService.resetIssuesSequence(c),
|
'issues-all': (c) => cleanupService.resetIssuesSequence(c),
|
||||||
};
|
};
|
||||||
|
|
||||||
router.delete(
|
const resetHandler = async (req: Request, res: Response): Promise<void> => {
|
||||||
'/cleanup/:resetTarget(reset-bestellungen|reset-ausruestung-anfragen|reset-issues|issues-all)',
|
|
||||||
authenticate,
|
|
||||||
requirePermission('admin:write'),
|
|
||||||
async (req: Request, res: Response): Promise<void> => {
|
|
||||||
try {
|
try {
|
||||||
const target = req.params.resetTarget as ResetTarget;
|
const target = req.params.resetTarget as string;
|
||||||
const handler = RESET_TARGETS[target];
|
const handler = RESET_TARGETS[target];
|
||||||
if (!handler) {
|
if (!handler) {
|
||||||
res.status(400).json({ success: false, message: `Unknown reset target: ${target}` });
|
res.status(400).json({ success: false, message: `Unknown reset target: ${target}` });
|
||||||
@@ -297,8 +291,12 @@ router.delete(
|
|||||||
logger.error('Reset failed', { error, target: req.params.resetTarget });
|
logger.error('Reset failed', { error, target: req.params.resetTarget });
|
||||||
res.status(500).json({ success: false, message: 'Reset failed' });
|
res.status(500).json({ success: false, message: 'Reset failed' });
|
||||||
}
|
}
|
||||||
}
|
};
|
||||||
);
|
|
||||||
|
router.delete('/cleanup/reset-bestellungen', authenticate, requirePermission('admin:write'), (req, res) => { req.params.resetTarget = 'reset-bestellungen'; return resetHandler(req, res); });
|
||||||
|
router.delete('/cleanup/reset-ausruestung-anfragen', authenticate, requirePermission('admin:write'), (req, res) => { req.params.resetTarget = 'reset-ausruestung-anfragen'; return resetHandler(req, res); });
|
||||||
|
router.delete('/cleanup/reset-issues', authenticate, requirePermission('admin:write'), (req, res) => { req.params.resetTarget = 'reset-issues'; return resetHandler(req, res); });
|
||||||
|
router.delete('/cleanup/issues-all', authenticate, requirePermission('admin:write'), (req, res) => { req.params.resetTarget = 'issues-all'; return resetHandler(req, res); });
|
||||||
|
|
||||||
// ---------------------------------------------------------------------------
|
// ---------------------------------------------------------------------------
|
||||||
// DELETE /api/admin/users/:userId/sync-data — selective sync data deletion
|
// DELETE /api/admin/users/:userId/sync-data — selective sync data deletion
|
||||||
|
|||||||
Reference in New Issue
Block a user