2026-03-08 18:11:26 -06:00

41 lines
1.1 KiB
TypeScript

import { Router, Request, Response, NextFunction } from 'express';
import { mapSettingsService } from './settings.service';
import { updateMapSettingsSchema } from './settings.schemas';
import { validate } from '../../../middleware/validate';
import { authenticate } from '../../../middleware/auth.middleware';
import { requireRole } from '../../../middleware/rbac.middleware';
import { MAP_ROLES } from '../../../utils/roles';
const router = Router();
// GET /api/map/settings — public (needed for map center/zoom)
router.get(
'/',
async (_req: Request, res: Response, next: NextFunction) => {
try {
const settings = await mapSettingsService.get();
res.json(settings);
} catch (err) {
next(err);
}
}
);
// PUT /api/map/settings — admin only
router.put(
'/',
authenticate,
requireRole(...MAP_ROLES),
validate(updateMapSettingsSchema),
async (req: Request, res: Response, next: NextFunction) => {
try {
const settings = await mapSettingsService.update(req.body);
res.json(settings);
} catch (err) {
next(err);
}
}
);
export { router as mapSettingsRouter };