summaryrefslogtreecommitdiffstats
path: root/server/api/ipxeentries.js
diff options
context:
space:
mode:
authorUdo Walter2019-03-30 22:49:02 +0100
committerUdo Walter2019-03-30 22:49:02 +0100
commit8a4383885cb6bc19a2ce16bbad31ff0beada5ae2 (patch)
tree6d59120c2cea7c9d7e07d201af8f080d45a35945 /server/api/ipxeentries.js
parent[webapp] fix bug in groups; remember filters in systemlog (diff)
downloadbas-8a4383885cb6bc19a2ce16bbad31ff0beada5ae2.tar.gz
bas-8a4383885cb6bc19a2ce16bbad31ff0beada5ae2.tar.xz
bas-8a4383885cb6bc19a2ce16bbad31ff0beada5ae2.zip
[server] configurator api -> ipxeconfigs and ipxeentries api; [webapp] ui polishing
Diffstat (limited to 'server/api/ipxeentries.js')
-rw-r--r--server/api/ipxeentries.js56
1 files changed, 56 insertions, 0 deletions
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