From 8a4383885cb6bc19a2ce16bbad31ff0beada5ae2 Mon Sep 17 00:00:00 2001 From: Udo Walter Date: Sat, 30 Mar 2019 21:49:02 +0000 Subject: [server] configurator api -> ipxeconfigs and ipxeentries api; [webapp] ui polishing --- server/api/ipxeentries.js | 56 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 server/api/ipxeentries.js (limited to 'server/api/ipxeentries.js') diff --git a/server/api/ipxeentries.js b/server/api/ipxeentries.js new file mode 100644 index 0000000..25cfd21 --- /dev/null +++ b/server/api/ipxeentries.js @@ -0,0 +1,56 @@ +/* global __appdir */ +var path = require('path') +var db = require(path.join(__appdir, 'lib', 'sequelize')) +var express = require('express') +const { decorateApp } = require('@awaitjs/express') +var router = decorateApp(express.Router()) + +// ############################################################################ +// ########################### GET requests ################################# + +router.getAsync('', async (req, res) => { + const entries = await db.entry.findAll() + res.status(200).send(entries) +}) + +router.getAsync('/:id', async (req, res) => { + const entry = await db.entry.findOne({ where: { id: req.params.id }}) + if (entry) res.status(200).send(entry) + else res.status(404).end() +}) + +// ############################################################################ +// ########################## POST requests ################################# + +router.postAsync(['', '/:id'], async (req, res) => { + if (req.query.delete !== undefined && req.query.delete !== 'false') { + const count = await db.entry.destroy({ where: { id: req.body.ids } }) + res.status(200).send({ count }) + } else { + let entry + if (req.params.id === undefined) entry = await db.entry.create(req.body.data) + else { + entry = await db.entry.findOne({ where: { id: req.params.id } }) + if (entry) await entry.update(req.body.data) + } + if (entry) { + res.status(200).send({ id: entry.id }) + } else { + res.status(404).end() + } + } +}) + +// ############################################################################ +// ########################## DELETE requests ############################### + +router.deleteAsync('/:id', async (req, res) => { + const count = await db.entry.destroy({ where: { id: req.params.id } }) + if (count) res.status(200).end() + else res.status(404).end() +}) + +// ############################################################################ +// ############################################################################ + +module.exports.router = router -- cgit v1.2.3-55-g7522