refactor(backend): standardize error responses, logging, pagination

- errorResponse(res, error, status, publicMessage) in routeHelpers,
  wired into 125 catch blocks across 10 route files; wire format
  ({ error: <string> }) unchanged byte-for-byte
- Replace remaining console.* with logger across src (178 sites);
  3 intentional console sites kept (install boot, unbound .catch ref)
- Adopt getPagination in 6 routes where semantics match exactly
This commit is contained in:
Paul Nothaft
2026-07-03 07:49:45 +02:00
parent d44ead41c5
commit 6eb46d8c31
41 changed files with 372 additions and 482 deletions
+7 -6
View File
@@ -4,6 +4,7 @@ const { db, logActivity } = require('../database/db');
const { formatBoolean } = require('../utils/dbCompat');
const { adminAuth } = require('../middleware/auth');
const { requirePermission } = require('../middleware/permissions');
const logger = require('../utils/logger');
const router = express.Router();
// Get all global categories
@@ -15,7 +16,7 @@ router.get('/global', adminAuth, requirePermission('settings.view'), async (req,
res.json(categories);
} catch (error) {
console.error('Error fetching categories:', error);
logger.error('Error fetching categories:', error);
res.status(500).json({ error: 'Failed to fetch categories' });
}
});
@@ -35,7 +36,7 @@ router.get('/event/:eventId', adminAuth, requirePermission('settings.view'), asy
res.json(categories);
} catch (error) {
console.error('Error fetching event categories:', error);
logger.error('Error fetching event categories:', error);
res.status(500).json({ error: 'Failed to fetch categories' });
}
});
@@ -101,7 +102,7 @@ router.post('/', adminAuth, requirePermission('settings.edit'), [
res.json(category);
} catch (error) {
console.error('Error creating category:', error);
logger.error('Error creating category:', error);
res.status(500).json({ error: 'Failed to create category' });
}
});
@@ -165,7 +166,7 @@ router.put('/:id', adminAuth, requirePermission('settings.edit'), [
res.json(updated);
} catch (error) {
console.error('Error updating category:', error);
logger.error('Error updating category:', error);
res.status(500).json({ error: 'Failed to update category' });
}
});
@@ -214,7 +215,7 @@ router.put('/:id/hero', adminAuth, requirePermission('settings.edit'), [
res.json(updated);
} catch (error) {
console.error('Error updating category hero:', error);
logger.error('Error updating category hero:', error);
res.status(500).json({ error: 'Failed to update category hero' });
}
});
@@ -248,7 +249,7 @@ router.delete('/:id', adminAuth, requirePermission('settings.edit'), async (req,
res.json({ message: 'Category deleted successfully' });
} catch (error) {
console.error('Error deleting category:', error);
logger.error('Error deleting category:', error);
res.status(500).json({ error: 'Failed to delete category' });
}
});