summaryrefslogtreecommitdiffstats
path: root/server/api/groups.js
diff options
context:
space:
mode:
Diffstat (limited to 'server/api/groups.js')
-rw-r--r--server/api/groups.js9
1 files changed, 9 insertions, 0 deletions
diff --git a/server/api/groups.js b/server/api/groups.js
index e3683bf..7cab3d8 100644
--- a/server/api/groups.js
+++ b/server/api/groups.js
@@ -7,6 +7,7 @@ const express = require('express')
const { decorateApp } = require('@awaitjs/express')
const router = decorateApp(express.Router())
const HttpResponse = require(path.join(__appdir, 'lib', 'httpresponse'))
+const backendHelper = require(path.join(__appdir, 'lib', 'external-backends', 'backendhelper'))
// ############################################################################
// ########################### GET requests #################################
@@ -120,12 +121,20 @@ router.postAsync('/:id/clients', async (req, res) => {
if (!(req.params.id > 0)) return HttpResponse.invalidId().send(res)
const group = await db.group.findOne({ where: { id: req.params.id } })
if (group) {
+ let groupid = null
if (req.query.delete !== undefined && req.query.delete !== 'false') {
const count = await group.removeClients(req.body.ids)
HttpResponse.successBatch('removed', 'client', count).send(res)
} else {
const count = await group.addClients(req.body.ids)
HttpResponse.successBatch('added', 'client', count).send(res)
+ groupid = group.id
+ }
+
+ // Update each client backend
+ for (let index in req.body.ids) {
+ const id = req.body.ids[index]
+ backendHelper.updateClient({ id: id, parents: [groupid] })
}
} else {
HttpResponse.notFound(req.params.id).send(res)