summaryrefslogtreecommitdiffstats
path: root/server/api/groups.js
diff options
context:
space:
mode:
authorUdo Walter2019-03-31 15:50:08 +0200
committerUdo Walter2019-03-31 15:50:08 +0200
commita8e6ec0d6496686399653375c00bc01a1ae262f7 (patch)
tree6a7ed1a87988c27e71927a907036460a6ec96098 /server/api/groups.js
parent[server/clients] add more responses (diff)
downloadbas-a8e6ec0d6496686399653375c00bc01a1ae262f7.tar.gz
bas-a8e6ec0d6496686399653375c00bc01a1ae262f7.tar.xz
bas-a8e6ec0d6496686399653375c00bc01a1ae262f7.zip
[server/ipxeconfigs] add more responses
Diffstat (limited to 'server/api/groups.js')
-rw-r--r--server/api/groups.js62
1 files changed, 30 insertions, 32 deletions
diff --git a/server/api/groups.js b/server/api/groups.js
index 97e4808..99260ea 100644
--- a/server/api/groups.js
+++ b/server/api/groups.js
@@ -63,42 +63,40 @@ router.postAsync(['', '/:id'], async (req, res) => {
} else {
return httpResponse.invalidId(res)
}
- if (group) {
- const promises = []
- // Set group parents
- if (Array.isArray(req.body.parentIds)) promises.push(group.setParents(req.body.parentIds))
- // Update, create or destroy ipranges
- if (Array.isArray(req.body.ipranges)) {
- // Get the ipranges of the group an create a id -> iprange map of them
- const iprangeIdMap = {}
- if (group.ipranges) {
- group.ipranges.forEach(iprange => {
- iprangeIdMap[iprange.id] = iprange
- })
- }
- // Update existing ipranges and create the new ones
- req.body.ipranges.forEach(iprange => {
- // Convert valid ip addresses to integer values.
- if (!ipHelper.isIPv4(iprange.startIp) || !ipHelper.isIPv4(iprange.endIp)) return
- iprange.startIp = ipHelper.toDecimal(iprange.startIp)
- iprange.endIp = ipHelper.toDecimal(iprange.endIp)
- if (iprange.id) {
- if (iprangeIdMap[iprange.id]) {
- promises.push(iprangeIdMap[iprange.id].update(iprange))
- delete iprangeIdMap[iprange.id]
- }
- } else {
- promises.push(group.createIprange(iprange))
- }
+ const promises = []
+ // Set group parents
+ if (Array.isArray(req.body.parentIds)) promises.push(group.setParents(req.body.parentIds))
+ // Update, create or destroy ipranges
+ if (Array.isArray(req.body.ipranges)) {
+ // Get the ipranges of the group an create a id -> iprange map of them
+ const iprangeIdMap = {}
+ if (group.ipranges) {
+ group.ipranges.forEach(iprange => {
+ iprangeIdMap[iprange.id] = iprange
})
- // Destroy the deleted ipranges
- for (let id in iprangeIdMap) {
- promises.push(iprangeIdMap[id].destroy())
+ }
+ // Update existing ipranges and create the new ones
+ req.body.ipranges.forEach(iprange => {
+ // Convert valid ip addresses to integer values.
+ if (!ipHelper.isIPv4(iprange.startIp) || !ipHelper.isIPv4(iprange.endIp)) return
+ iprange.startIp = ipHelper.toDecimal(iprange.startIp)
+ iprange.endIp = ipHelper.toDecimal(iprange.endIp)
+ if (iprange.id) {
+ if (iprangeIdMap[iprange.id]) {
+ promises.push(iprangeIdMap[iprange.id].update(iprange))
+ delete iprangeIdMap[iprange.id]
+ }
+ } else {
+ promises.push(group.createIprange(iprange))
}
+ })
+ // Destroy the deleted ipranges
+ for (let id in iprangeIdMap) {
+ promises.push(iprangeIdMap[id].destroy())
}
- await Promise.all(promises)
- httpResponse.success(res, action, 'group', group.id)
}
+ await Promise.all(promises)
+ httpResponse.success(res, action, 'group', group.id)
}
})