Change-Id: I20df7053c74cf50e0d82a03a18447d571acb62f0changes/73/16973/11
parent
c96b53a4a6
commit
0081b1e7dc
@ -0,0 +1,84 @@
|
||||
|
||||
import Vue from 'vue';
|
||||
import { getJsonBody } from './utils'
|
||||
|
||||
let rowCountAssumption = 1000;
|
||||
|
||||
export function getMappings(id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
Vue.http.get('/api/cfmappings/' + id).then(result => {
|
||||
let jsonBody = getJsonBody(result.body);
|
||||
delete jsonBody._links;
|
||||
delete jsonBody.cfs;
|
||||
resolve(getJsonBody(result.body));
|
||||
}).catch(err => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export function getSourcesets(id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
Promise.resolve().then(() => {
|
||||
return Vue.http.get('/api/cfsourcesets/',
|
||||
{ params: { subscriber_id: id, page: 1, rows: rowCountAssumption } })
|
||||
}).then(result => {
|
||||
let totalCount = getJsonBody(result.body).total_count;
|
||||
if (totalCount > rowCountAssumption) {
|
||||
return Vue.http.get('/api/cfsourcesets/',
|
||||
{ params: { subscriber_id: id, page: 1,
|
||||
rows: totalCount } })
|
||||
} else {
|
||||
return Promise.resolve(result);
|
||||
}
|
||||
}).then(result => {
|
||||
resolve(getJsonBody(result.body)._embedded['ngcp:cfsourcesets']);
|
||||
}).catch(err => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export function getTimesets(id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
Promise.resolve().then(() => {
|
||||
return Vue.http.get('/api/cftimesets/',
|
||||
{ params: { subscriber_id: id, page: 1, rows: rowCountAssumption } })
|
||||
}).then(result => {
|
||||
let totalCount = getJsonBody(result.body).total_count;
|
||||
if (totalCount > rowCountAssumption) {
|
||||
return Vue.http.get('/api/cftimesets/',
|
||||
{ params: { subscriber_id: id, page: 1,
|
||||
rows: totalCount } })
|
||||
} else {
|
||||
return Promise.resolve(result);
|
||||
}
|
||||
}).then(result => {
|
||||
resolve(getJsonBody(result.body)._embedded['ngcp:cftimesets']);
|
||||
}).catch(err => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
export function getDestinationsets(id) {
|
||||
return new Promise((resolve, reject) => {
|
||||
Promise.resolve().then(() => {
|
||||
return Vue.http.get('/api/cfdestinationsets/',
|
||||
{ params: { subscriber_id: id, page: 1, rows: rowCountAssumption } })
|
||||
}).then(result => {
|
||||
let totalCount = getJsonBody(result.body).total_count;
|
||||
if (totalCount > rowCountAssumption) {
|
||||
return Vue.http.get('/api/cfdestinationsets/',
|
||||
{ params: { subscriber_id: id, page: 1,
|
||||
rows: totalCount } })
|
||||
} else {
|
||||
return Promise.resolve(result);
|
||||
}
|
||||
}).then(result => {
|
||||
resolve(getJsonBody(result.body)._embedded['ngcp:cfdestinationsets']);
|
||||
}).catch(err => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
@ -0,0 +1,72 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
import _ from 'lodash';
|
||||
import { getSourcesets, getDestinationsets, getTimesets,
|
||||
getMappings } from '../api/call-forward';
|
||||
|
||||
export default {
|
||||
namespaced: true,
|
||||
state: {
|
||||
mappings: null,
|
||||
sourcesets: null,
|
||||
timesets: null,
|
||||
destinationsets: null
|
||||
},
|
||||
mutations: {
|
||||
loadMappings(state, result) {
|
||||
state.mappings = result;
|
||||
},
|
||||
loadSourcesets(state, result) {
|
||||
state.sourcesets = result;
|
||||
},
|
||||
loadTimesets(state, result) {
|
||||
state.timesets = result;
|
||||
},
|
||||
loadDestinationsets(state, result) {
|
||||
state.destinationsets = result;
|
||||
}
|
||||
},
|
||||
actions: {
|
||||
loadMappings(context) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getMappings(localStorage.getItem('subscriberId'))
|
||||
.then(result => {
|
||||
context.commit('loadMappings', result);
|
||||
}).catch(err => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
},
|
||||
loadSourcesets(context) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getSourcesets(localStorage.getItem('subscriberId'))
|
||||
.then(result => {
|
||||
context.commit('loadSourcesets', result);
|
||||
}).catch(err => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
},
|
||||
loadTimesets(context) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getTimesets(localStorage.getItem('subscriberId'))
|
||||
.then(result => {
|
||||
context.commit('loadTimesets', result);
|
||||
}).catch(err => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
},
|
||||
loadDestinationsets(context) {
|
||||
return new Promise((resolve, reject) => {
|
||||
getDestinationsets(localStorage.getItem('subscriberId'))
|
||||
.then(result => {
|
||||
context.commit('loadDestinationsets', result);
|
||||
}).catch(err => {
|
||||
reject(err);
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
@ -0,0 +1,232 @@
|
||||
|
||||
'use strict';
|
||||
|
||||
import Vue from 'vue';
|
||||
import VueResource from 'vue-resource';
|
||||
import { getMappings, getSourcesets, getTimesets,
|
||||
getDestinationsets } from '../../src/api/call-forward';
|
||||
import { assert } from 'chai';
|
||||
|
||||
Vue.use(VueResource);
|
||||
|
||||
describe('CallForward', function(){
|
||||
|
||||
const subscriberId = 123;
|
||||
|
||||
it('should get all call forward mappings', function(done){
|
||||
|
||||
let data = {
|
||||
"cfb": [{
|
||||
"destinationset": "quickset_cfb",
|
||||
"destinationset_id": 3,
|
||||
"sourceset": null,
|
||||
"sourceset_id": null,
|
||||
"timeset": null,
|
||||
"timeset_id": null
|
||||
}],
|
||||
"cfna": [{
|
||||
"destinationset": "quickset_cfna",
|
||||
"destinationset_id": 5,
|
||||
"sourceset": null,
|
||||
"sourceset_id": null,
|
||||
"timeset": null,
|
||||
"timeset_id": null
|
||||
}],
|
||||
"cfs": [],
|
||||
"cft": [],
|
||||
"cft_ringtimeout": null,
|
||||
"cfu": [{
|
||||
"destinationset": "quickset_cfu",
|
||||
"destinationset_id": 1,
|
||||
"sourceset": null,
|
||||
"sourceset_id": null,
|
||||
"timeset": null,
|
||||
"timeset_id": null
|
||||
}],
|
||||
"id": 233
|
||||
};
|
||||
|
||||
Vue.http.interceptors = [];
|
||||
Vue.http.interceptors.unshift((request, next)=>{
|
||||
next(request.respondWith(JSON.stringify(data), {
|
||||
status: 200
|
||||
}));
|
||||
});
|
||||
getMappings(subscriberId).then((result)=>{
|
||||
assert.deepEqual(result, data);
|
||||
done();
|
||||
}).catch((err)=>{
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
it('should get all call forward sourcesets', function(done){
|
||||
|
||||
let innerData = [{
|
||||
"_links": {
|
||||
"collection": {
|
||||
"href": "/api/cfsourcesets/"
|
||||
},
|
||||
"curies": {
|
||||
"href": "http://purl.org/sipwise/ngcp-api/#rel-{rel}",
|
||||
"name": "ngcp",
|
||||
"templated": true
|
||||
},
|
||||
"ngcp:subscribers": {
|
||||
"href": "/api/subscribers/233"
|
||||
},
|
||||
"profile": {
|
||||
"href": "http://purl.org/sipwise/ngcp-api/"
|
||||
},
|
||||
"self": {
|
||||
"href": "/api/cfsourcesets/3"
|
||||
}
|
||||
},
|
||||
"id": 3,
|
||||
"mode": "whitelist",
|
||||
"name": "sffsdg",
|
||||
"sources": [{
|
||||
"source": "3423"
|
||||
}],
|
||||
"subscriber_id": 233
|
||||
}];
|
||||
let data = {
|
||||
"_embedded": {
|
||||
"ngcp:cfsourcesets": innerData
|
||||
},
|
||||
"total_count": 10
|
||||
};
|
||||
|
||||
Vue.http.interceptors = [];
|
||||
Vue.http.interceptors.unshift((request, next)=>{
|
||||
next(request.respondWith(JSON.stringify(data), {
|
||||
status: 200
|
||||
}));
|
||||
});
|
||||
getSourcesets(subscriberId).then((result)=>{
|
||||
assert.deepEqual(result, innerData);
|
||||
done();
|
||||
}).catch((err)=>{
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
it('should get all call forward timesets', function(done){
|
||||
|
||||
let innerData = [{
|
||||
"_links": {
|
||||
"collection": {
|
||||
"href": "/api/cftimesets/"
|
||||
},
|
||||
"curies": {
|
||||
"href": "http://purl.org/sipwise/ngcp-api/#rel-{rel}",
|
||||
"name": "ngcp",
|
||||
"templated": true
|
||||
},
|
||||
"ngcp:cftimesets": {
|
||||
"href": "/api/cftimesets/1"
|
||||
},
|
||||
"ngcp:journal": {
|
||||
"href": "/api/cftimesets/1/journal/"
|
||||
},
|
||||
"ngcp:subscribers": {
|
||||
"href": "/api/subscribers/233"
|
||||
},
|
||||
"profile": {
|
||||
"href": "http://purl.org/sipwise/ngcp-api/"
|
||||
},
|
||||
"self": {
|
||||
"href": "/api/cftimesets/1"
|
||||
}
|
||||
},
|
||||
"id": 1,
|
||||
"name": "efsgfseg",
|
||||
"subscriber_id": 233,
|
||||
"times": [{
|
||||
"hour": null,
|
||||
"mday": null,
|
||||
"minute": null,
|
||||
"month": null,
|
||||
"wday": "2-3",
|
||||
"year": null
|
||||
}]
|
||||
}];
|
||||
let data = {
|
||||
"_embedded": {
|
||||
"ngcp:cftimesets": innerData
|
||||
},
|
||||
"total_count": 10
|
||||
};
|
||||
|
||||
Vue.http.interceptors = [];
|
||||
Vue.http.interceptors.unshift((request, next)=>{
|
||||
next(request.respondWith(JSON.stringify(data), {
|
||||
status: 200
|
||||
}));
|
||||
});
|
||||
getTimesets(subscriberId).then((result)=>{
|
||||
assert.deepEqual(result, innerData);
|
||||
done();
|
||||
}).catch((err)=>{
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
it('should get all call forward destinationsets', function(done){
|
||||
|
||||
let innerData = [{
|
||||
"_links": {
|
||||
"collection": {
|
||||
"href": "/api/cfdestinationsets/"
|
||||
},
|
||||
"curies": {
|
||||
"href": "http://purl.org/sipwise/ngcp-api/#rel-{rel}",
|
||||
"name": "ngcp",
|
||||
"templated": true
|
||||
},
|
||||
"ngcp:journal": {
|
||||
"href": "/api/cfdestinationsets/1/journal/"
|
||||
},
|
||||
"ngcp:subscribers": {
|
||||
"href": "/api/subscribers/233"
|
||||
},
|
||||
"profile": {
|
||||
"href": "http://purl.org/sipwise/ngcp-api/"
|
||||
},
|
||||
"self": {
|
||||
"href": "/api/cfdestinationsets/1"
|
||||
}
|
||||
},
|
||||
"destinations": [{
|
||||
"announcement_id": null,
|
||||
"destination": "sip:24234234@192.168.178.23",
|
||||
"priority": 1,
|
||||
"simple_destination": "24234234",
|
||||
"timeout": 300
|
||||
}],
|
||||
"id": 1,
|
||||
"name": "quickset_cfu",
|
||||
"subscriber_id": 233
|
||||
}];
|
||||
let data = {
|
||||
"_embedded": {
|
||||
"ngcp:cfdestinationsets": innerData
|
||||
},
|
||||
"total_count": 10
|
||||
};
|
||||
|
||||
Vue.http.interceptors = [];
|
||||
Vue.http.interceptors.unshift((request, next)=>{
|
||||
next(request.respondWith(JSON.stringify(data), {
|
||||
status: 200
|
||||
}));
|
||||
});
|
||||
getDestinationsets(subscriberId).then((result)=>{
|
||||
assert.deepEqual(result, innerData);
|
||||
done();
|
||||
}).catch((err)=>{
|
||||
done(err);
|
||||
});
|
||||
});
|
||||
|
||||
});
|
Loading…
Reference in new issue