buildings.js 1.86 KB
Newer Older
abergavenny's avatar
abergavenny committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import express from 'express'
import { checkSchema } from 'express-validator'

import { createBuilding, getApartments, getBuilding, getBuildings, getSimulation, getUsers, updateBuilding, updateBuildingDataCharacteristics, updateBuildingDataBasement, updateBuildingDataFacade, updateBuildingDataHeating, updateBuildingDataRoof } from '../../controllers/buildings.js'
import asyncHandler from '../../middleware/asyncHandler.js'
import permissionHandler from '../../middleware/permissionHandler.js'
import { basementSchema, characteristicsSchema, createBuildingSchema, facadeSchema, heatingSchema, roofSchema, simulationSchema } from '../../schemas/buildings.js'
import { idSchema } from '../../schemas/index.js'

const router = express.Router()

router.get('/', permissionHandler, asyncHandler(getBuildings))
router.get('/:id', checkSchema(idSchema), asyncHandler(getBuilding))
router.get('/:id/apartments', checkSchema(idSchema), asyncHandler(getApartments))
router.get('/:id/simulations/run', checkSchema(simulationSchema), asyncHandler(getSimulation))
router.get('/:id/users', checkSchema(idSchema), asyncHandler(getUsers))

router.post('/', permissionHandler, checkSchema(createBuildingSchema), asyncHandler(createBuilding))

router.put('/:id', permissionHandler, asyncHandler(updateBuilding))
router.put('/:id/basement', permissionHandler, checkSchema(basementSchema), asyncHandler(updateBuildingDataBasement))
router.put('/:id/characteristics', permissionHandler, checkSchema(characteristicsSchema), asyncHandler(updateBuildingDataCharacteristics))
router.put('/:id/facade', permissionHandler, checkSchema(facadeSchema), asyncHandler(updateBuildingDataFacade))
router.put('/:id/heating', permissionHandler, checkSchema(heatingSchema), asyncHandler(updateBuildingDataHeating))
router.put('/:id/roof', permissionHandler, checkSchema(roofSchema), asyncHandler(updateBuildingDataRoof))

export default router