feat: Implement layer CRUD API endpoints with RBAC
This commit is contained in:
@@ -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);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user