feat: Implement layer CRUD API endpoints with RBAC

This commit is contained in:
2026-06-22 05:50:09 +00:00
parent 9301cbb577
commit 0ed52cd311
+27 -1
View File
@@ -1,5 +1,31 @@
import { FastifyInstance } from 'fastify'; import { FastifyInstance } from 'fastify';
import { authenticate, authorizeProjectMember, authorizePlannerPlus } from '../middleware/auth';
import { getLayers, createLayer, updateLayer, deleteLayer, reorderLayers } from '../controllers/layerController';
import { validateLayerCreation, validateLayerUpdate, validateLayerReorder } from '../validators/layerValidator';
export default async function layersRoutes(fastify: FastifyInstance) { export default async function layersRoutes(fastify: FastifyInstance) {
// Placeholder for layers routes // GET /projects/:projectId/layers - List layers for project
fastify.get('/', {
preHandler: [authenticate, authorizeProjectMember]
}, getLayers);
// POST /projects/:projectId/layers/ - Create layer (Planner+)
fastify.post('/', {
preHandler: [authenticate, authorizeProjectMember, authorizePlannerPlus]
}, createLayer);
// PUT /projects/:projectId/layers/:layerId - Update layer (Planner+)
fastify.put('/:layerId', {
preHandler: [authenticate, authorizeProjectMember, authorizePlannerPlus]
}, updateLayer);
// DELETE /projects/:projectId/layers/:layerId - Delete layer (Planner+)
fastify.delete('/:layerId', {
preHandler: [authenticate, authorizeProjectMember, authorizePlannerPlus]
}, deleteLayer);
// PUT /projects/:projectId/layers/reorder - Reorder layers (Planner+)
fastify.put('/reorder', {
preHandler: [authenticate, authorizeProjectMember, authorizePlannerPlus]
}, reorderLayers);
} }