summaryrefslogtreecommitdiffstats
path: root/server
diff options
context:
space:
mode:
authorUdo Walter2019-02-26 04:28:51 +0100
committerUdo Walter2019-02-26 04:28:51 +0100
commit79a33eb08a36b9540d7fc58f2e1eefb56a1aaf6e (patch)
tree85b2df81ede5c0efbd9f59cf88a2aef059157a40 /server
parent[account] Fix for the changePassword method (diff)
downloadbas-79a33eb08a36b9540d7fc58f2e1eefb56a1aaf6e.tar.gz
bas-79a33eb08a36b9540d7fc58f2e1eefb56a1aaf6e.tar.xz
bas-79a33eb08a36b9540d7fc58f2e1eefb56a1aaf6e.zip
[webapp/configurator] add ability to assign configs to groups/clients
[server] increase request size limit to 50mb
Diffstat (limited to 'server')
-rw-r--r--server/api/configurator.js33
-rw-r--r--server/app.js2
-rw-r--r--server/models/config.js4
3 files changed, 35 insertions, 4 deletions
diff --git a/server/api/configurator.js b/server/api/configurator.js
index 9ed349d..4ae1f35 100644
--- a/server/api/configurator.js
+++ b/server/api/configurator.js
@@ -19,7 +19,7 @@ router.getAsync('/entries', async (req, res) => {
})
router.getAsync('/configs/:id/entries', async (req, res) => {
- var config = await db.config.findOne({
+ const config = await db.config.findOne({
where: { id: req.params.id },
include: ['entries'],
order: [[db.config.associations.entries, db.config.associations.entries.through, 'sortValue', 'ASC']]
@@ -28,6 +28,18 @@ router.getAsync('/configs/:id/entries', async (req, res) => {
else res.status(404).end()
})
+router.getAsync('/configs/:id/groups', async (req, res) => {
+ const config = await db.config.findOne({ where: { id: req.params.id }, include: ['groups'] })
+ if (config) res.status(200).send(config.groups)
+ else res.status(404).end()
+})
+
+router.getAsync('/configs/:id/clients', async (req, res) => {
+ const config = await db.config.findOne({ where: { id: req.params.id }, include: ['clients'] })
+ if (config) res.status(200).send(config.clients)
+ else res.status(404).end()
+})
+
// ############################################################################
// ########################## POST requests #################################
@@ -78,6 +90,25 @@ router.postAsync(['/entries', '/entries/:id'], async (req, res) => {
})
// ############################################################################
+// ########################## POST requests #################################
+
+router.putAsync('/configs/:id/groups', async (req, res) => {
+ const config = await db.config.findOne({ where: { id: req.params.id } })
+ if (config) {
+ await config.setGroups(req.body.ids)
+ res.status(200).end()
+ } else { res.status(404).end() }
+})
+
+router.putAsync('/configs/:id/clients', async (req, res) => {
+ const config = await db.config.findOne({ where: { id: req.params.id } })
+ if (config) {
+ await config.setClients(req.body.ids)
+ res.status(200).end()
+ } else { res.status(404).end() }
+})
+
+// ############################################################################
// ########################## DELETE requests ###############################
router.deleteAsync('/configs/:id', async (req, res) => {
diff --git a/server/app.js b/server/app.js
index d026337..23f1584 100644
--- a/server/app.js
+++ b/server/app.js
@@ -16,7 +16,7 @@ require('./lib/permissions/index.js')
// ########################### setup middleware ###############################
app.use(compression())
-app.use(express.json())
+app.use(express.json({ limit: '50mb' }))
app.use(express.urlencoded({ extended: false }))
var logger = require('morgan')
diff --git a/server/models/config.js b/server/models/config.js
index aee8892..ae728f6 100644
--- a/server/models/config.js
+++ b/server/models/config.js
@@ -22,8 +22,8 @@ module.exports = (sequelize, DataTypes) => {
keyBind: DataTypes.STRING
}, { timestamps: false, freezeTableName: true })
config.belongsToMany(models.entry, { as: 'entries', through: ConfigXEntry, foreignKey: 'configId', otherKey: 'entryId' })
- config.hasMany(models.group)
- config.hasMany(models.client)
+ config.hasMany(models.group, { as: 'groups' })
+ config.hasMany(models.client, { as: 'clients' })
}
return config
}