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.
ngcp-csc-ui/src/api/user.js

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);
});
});
}