diff --git a/src/api/pbx-config.js b/src/api/pbx-config.js index 18624609..4704a8c2 100644 --- a/src/api/pbx-config.js +++ b/src/api/pbx-config.js @@ -3,7 +3,9 @@ import _ from 'lodash'; import Vue from 'vue'; import { getJsonBody } from './utils'; import { getNumbers, assignNumbers } from './user'; -import { createSubscriber, deleteSubscriber } from './subscriber'; +import { createSubscriber, deleteSubscriber, setDisplayName, + setPbxExtension, setPbxHuntPolicy, setPbxHuntTimeout, + setPbxGroupMemberIds } from './subscriber'; import uuid from 'uuid'; var createId = uuid.v4; @@ -132,3 +134,23 @@ export function addSeat(seat) { export function removeSeat(id) { return deleteSubscriber(id); } + +export function setGroupName(id, groupName) { + return setDisplayName(id, groupName); +} + +export function setGroupExtension(id, groupExtension) { + return setPbxExtension(id, groupExtension); +} + +export function setGroupHuntPolicy(id, huntPolicy) { + return setPbxHuntPolicy(id, huntPolicy); +} + +export function setGroupHuntTimeout(id, huntTimeout) { + return setPbxHuntTimeout(id, huntTimeout); +} + +export function updateGroupSeats(id, seatIds) { + return setPbxGroupMemberIds(id, seatIds); +} diff --git a/src/api/subscriber.js b/src/api/subscriber.js index bedefe5a..9552d506 100644 --- a/src/api/subscriber.js +++ b/src/api/subscriber.js @@ -215,3 +215,48 @@ export function deleteSubscriber(id) { }); }); } + +export function setField(id, field, value) { + return new Promise((resolve, reject)=>{ + Vue.http.patch('/api/subscribers/' + id, [{ + op: 'replace', + path: '/'+ field, + value: value + }], { + headers: { + 'Content-Type': 'application/json-patch+json', + 'Prefer': 'return=minimal' + } + }).then((result)=>{ + resolve(result); + }).catch((err)=>{ + if(err.status >= 400) { + reject(new Error(err.body.message)); + } + else { + reject(err); + } + }); + }); +} + +export function setDisplayName(id, displayName) { + return setField(id, 'display_name', displayName); +} + +export function setPbxExtension(id, pbxExtension) { + return setField(id, 'pbx_extension', pbxExtension); +} + +export function setPbxHuntPolicy(id, pbxHuntPolicy) { + return setField(id, 'pbx_hunt_policy', pbxHuntPolicy); +} + +export function setPbxHuntTimeout(id, pbxHuntTimeout) { + return setField(id, 'pbx_hunt_timeout', pbxHuntTimeout); +} + +export function setPbxGroupMemberIds(id, ids) { + return setField(id, 'pbx_groupmember_ids', ids); +} + diff --git a/src/components/pages/Home.vue b/src/components/pages/Home.vue index 9abb04bc..bd9d856e 100644 --- a/src/components/pages/Home.vue +++ b/src/components/pages/Home.vue @@ -1,5 +1,5 @@