apartments.js 1.25 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
28
29
30
31
32
import express from 'express'
import { checkSchema } from 'express-validator'
import multer from 'multer'

import { createApartment, getApartment, getApartments, getFile, updateFiles, updateHeatingData, updateWindowData } from '../../controllers/apartments.js'
import asyncHandler from '../../middleware/asyncHandler.js'
import permissionHandler from '../../middleware/permissionHandler.js'
import { createApartmentSchema, heatingSchema, windowSchema } from '../../schemas/apartments.js'
import { idSchema } from '../../schemas/index.js'

const router = express.Router()

const storage = multer.memoryStorage()
const fileUpload = multer({
  storage,
  limits: {
    fieldSize: 5000000,
    parts: 2
  }
})

router.get('/', asyncHandler(getApartments))
router.get('/:id', checkSchema(idSchema), asyncHandler(getApartment))
router.get('/:id/files', checkSchema(idSchema), asyncHandler(getFile))

router.post('/', permissionHandler, checkSchema(createApartmentSchema), asyncHandler(createApartment))

router.put('/:id/heating', checkSchema(heatingSchema), asyncHandler(updateHeatingData))
router.put('/:id/files', fileUpload.single('image'), asyncHandler(updateFiles))
router.put('/:id/windows', checkSchema(windowSchema), asyncHandler(updateWindowData))

export default router