You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
78 lines
2.1 KiB
78 lines
2.1 KiB
|
|
import _ from 'lodash';
|
|
import Vue from 'vue';
|
|
|
|
export function login(username, password) {
|
|
return new Promise((resolve, reject)=>{
|
|
var jwt = null;
|
|
var subscriberId = null;
|
|
Vue.http.post('/login_jwt', {
|
|
username: username,
|
|
password: password
|
|
}).then((result)=>{
|
|
jwt = result.body.jwt;
|
|
subscriberId = result.body.subscriber_id + "";
|
|
resolve({
|
|
jwt: jwt,
|
|
subscriberId: subscriberId,
|
|
});
|
|
}).catch((err)=>{
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
export function getUserData(id) {
|
|
return new Promise((resolve, reject)=>{
|
|
return Promise.all([
|
|
getSubscriberById(id),
|
|
getCapabilities()
|
|
]).then((results)=>{
|
|
resolve({
|
|
subscriber: results[0],
|
|
capabilities: results[1]
|
|
});
|
|
}).catch((err)=>{
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
export function getSubscriberById(id) {
|
|
return new Promise((resolve, reject)=>{
|
|
Vue.http.get('/api/subscribers/' + id).then((result)=>{
|
|
var body = JSON.parse(result.body);
|
|
resolve(body);
|
|
}).catch((err)=>{
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
export function getCapabilities() {
|
|
return new Promise((resolve, reject)=>{
|
|
Vue.http.get('/api/capabilities').then((result)=>{
|
|
var capabilities = {};
|
|
var body = JSON.parse(result.body);
|
|
if(_.isArray(body["_embedded"]["ngcp:capabilities"])) {
|
|
body['_embedded']['ngcp:capabilities'].forEach((capability)=>{
|
|
capabilities[capability.name] = capability.enabled;
|
|
});
|
|
}
|
|
resolve(capabilities);
|
|
}).catch((err)=>{
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|
|
|
|
export function getNumbers() {
|
|
return new Promise((resolve, reject)=>{
|
|
Vue.http.get('/api/numbers').then((result)=>{
|
|
resolve(result);
|
|
}).catch((err)=>{
|
|
reject(err);
|
|
});
|
|
});
|
|
}
|