130 lines
3.3 KiB
JavaScript
130 lines
3.3 KiB
JavaScript
const express = require('express')
|
|
const router = express.Router()
|
|
const Vegetables = require('../middleware/Vegetables')
|
|
const Pictures = require('../middleware/Pictures')
|
|
|
|
module.exports = function (passport) {
|
|
const basePath = '/api/types/:vegetableTypesId/vegetables'
|
|
const itemPath = basePath + '/:vegetablesId'
|
|
const picturesPath = itemPath + '/pictures'
|
|
const picturePath = picturesPath + '/:pictureId'
|
|
|
|
router.route(basePath)
|
|
.get(
|
|
function (req, res) {
|
|
Vegetables.getAll(req, function (err, items) {
|
|
if (err) {
|
|
res.status(items || 500).send(err.message)
|
|
} else {
|
|
res.status(200).json(items)
|
|
}
|
|
})
|
|
}
|
|
)
|
|
.post(
|
|
passport.authenticate(['basic-auth']),
|
|
function (req, res) {
|
|
const vegetable = new Vegetables()
|
|
vegetable.createOne(req, function (err, item) {
|
|
if (err) {
|
|
res.status(item || 500).send(err.message)
|
|
} else {
|
|
res.status(201).json(item)
|
|
}
|
|
})
|
|
}
|
|
)
|
|
|
|
router.route(itemPath)
|
|
.get(
|
|
function (req, res) {
|
|
Vegetables.getOne(req, function (err, item) {
|
|
if (err) {
|
|
res.status(item || 500).send(err.message)
|
|
} else {
|
|
res.status(200).json(item)
|
|
}
|
|
})
|
|
}
|
|
)
|
|
.patch(
|
|
passport.authenticate(['basic-auth']),
|
|
function (req, res) {
|
|
const vegetable = new Vegetables()
|
|
vegetable.patchOne(req, function (err, item) {
|
|
if (err) {
|
|
res.status(item || 500).send(err.message)
|
|
} else {
|
|
res.status(200).json(item)
|
|
}
|
|
})
|
|
}
|
|
)
|
|
.delete(
|
|
passport.authenticate(['basic-auth']),
|
|
function (req, res) {
|
|
const vegetable = new Vegetables()
|
|
vegetable.deleteOne(req, function (err, item) {
|
|
if (err) {
|
|
res.status(item || 500).send(err.message)
|
|
} else {
|
|
res.status(200).json(item)
|
|
}
|
|
})
|
|
}
|
|
)
|
|
|
|
router.route(picturesPath)
|
|
.get(
|
|
function (req, res) {
|
|
Pictures.getAll(req, function (err, item) {
|
|
if (err) {
|
|
res.status(item || 500).send(err.message)
|
|
} else {
|
|
res.status(200).json(item)
|
|
}
|
|
})
|
|
}
|
|
)
|
|
.post(
|
|
passport.authenticate(['basic-auth']),
|
|
function (req, res) {
|
|
const picture = new Pictures()
|
|
picture.createOne(req, function (err, item) {
|
|
if (err) {
|
|
res.status(item || 500).send(err.message)
|
|
} else {
|
|
res.status(201).json(item)
|
|
}
|
|
})
|
|
}
|
|
)
|
|
|
|
router.route(picturePath)
|
|
.get(
|
|
function (req, res) {
|
|
Pictures.getOne(req, function (err, item) {
|
|
if (err) {
|
|
res.status(item || 500).send(err.message)
|
|
} else {
|
|
res.status(200).json(item)
|
|
}
|
|
})
|
|
}
|
|
)
|
|
.delete(
|
|
passport.authenticate(['basic-auth']),
|
|
function (req, res) {
|
|
const picture = new Pictures()
|
|
picture.deleteOne(req, function (err, item) {
|
|
if (err) {
|
|
res.status(item || 500).send(err.message)
|
|
} else {
|
|
res.status(200).json(item)
|
|
}
|
|
})
|
|
}
|
|
)
|
|
|
|
return router
|
|
}
|