TT#49036 Login: Report error coming from the login procedure to browser console

Change-Id: I2894bcb7f0dd60a6015f2d32e0553e45c40a0158
changes/54/25754/2
Hans-Peter Herzog 6 years ago
parent bf661f4fa9
commit 167696e241

2
.gitignore vendored

@ -17,3 +17,5 @@ t/TESTS*
csc/ csc/
src/config.js src/config.js
.ngcpcfg_perms

@ -1,12 +1,16 @@
import _ from 'lodash'; import _ from 'lodash';
import Vue from 'vue'; import Vue from 'vue';
import { LIST_ALL_ROWS } from './common' import {
get,
getList,
patchReplace
} from './common'
export function login(username, password) { export function login(username, password) {
return new Promise((resolve, reject)=>{ return new Promise((resolve, reject)=>{
var jwt = null; let jwt = null;
var subscriberId = null; let subscriberId = null;
Vue.http.post('login_jwt', { Vue.http.post('login_jwt', {
username: username, username: username,
password: password password: password
@ -32,7 +36,7 @@ export function getUserData(id) {
return new Promise((resolve, reject)=>{ return new Promise((resolve, reject)=>{
return Promise.all([ return Promise.all([
getSubscriberById(id), getSubscriberById(id),
getCapabilities(), getCapabilities(id),
getFaxServerSettingsById(id) getFaxServerSettingsById(id)
]).then((results)=>{ ]).then((results)=>{
resolve({ resolve({
@ -48,8 +52,9 @@ export function getUserData(id) {
export function getSubscriberById(id) { export function getSubscriberById(id) {
return new Promise((resolve, reject)=>{ return new Promise((resolve, reject)=>{
Vue.http.get('api/subscribers/' + id).then((result)=>{ get({
var body = JSON.parse(result.body); path: 'api/subscribers/' + id
}).then((body)=>{
resolve(body); resolve(body);
}).catch((err)=>{ }).catch((err)=>{
reject(err); reject(err);
@ -59,11 +64,14 @@ export function getSubscriberById(id) {
export function getCapabilities() { export function getCapabilities() {
return new Promise((resolve, reject)=>{ return new Promise((resolve, reject)=>{
Vue.http.get('api/capabilities/').then((result)=>{ getList({
var capabilities = {}; path: 'api/capabilities/',
var body = JSON.parse(result.body); root: '_embedded.ngcp:capabilities',
if(_.isArray(body["_embedded"]["ngcp:capabilities"])) { all: true
body['_embedded']['ngcp:capabilities'].forEach((capability)=>{ }).then((capabilityList)=>{
let capabilities = {};
if(_.isArray(capabilityList.items)) {
capabilityList.items.forEach((capability)=>{
capabilities[capability.name] = capability.enabled; capabilities[capability.name] = capability.enabled;
}); });
} }
@ -76,16 +84,10 @@ export function getCapabilities() {
export function assignNumber(numberId, subscriberId) { export function assignNumber(numberId, subscriberId) {
return new Promise((resolve, reject)=>{ return new Promise((resolve, reject)=>{
var headers = {}; patchReplace({
headers['Content-Type'] = 'application/json-patch+json'; path: 'api/numbers/' + numberId,
Promise.resolve().then(() => { fieldPath: 'subscriber_id',
return Vue.http.patch('api/numbers/' + numberId, [{ value: subscriberId
op: 'replace',
path: '/subscriber_id',
value: subscriberId
}], {
headers: headers
});
}).then(()=>{ }).then(()=>{
resolve(); resolve();
}).catch((err)=>{ }).catch((err)=>{
@ -115,37 +117,12 @@ export function assignNumbers(numberIds, subscriberId) {
export function getNumbers() { export function getNumbers() {
return new Promise((resolve, reject)=>{ return new Promise((resolve, reject)=>{
let params = {}; getList({
let path = 'api/numbers/'; path: 'api/numbers/',
Promise.resolve().then(()=>{ root: '_embedded.ngcp:numbers',
return Vue.http.get(path, { all: true
params: _.assign(params, { }).then((numberList)=>{
page: 1, resolve(numberList.items);
rows: LIST_ALL_ROWS,
})
});
}).then((res)=>{
let body = JSON.parse(res.body);
if(body.total_count > LIST_ALL_ROWS) {
return Vue.http.get(path, {
params: _.assign(params, {
page: 1,
rows: body.total_count,
})
});
}
else {
return Promise.resolve(res);
}
}).then((res)=>{
let body = JSON.parse(res.body);
let numbers = [];
if(_.isArray(body["_embedded"]["ngcp:numbers"])) {
body['_embedded']['ngcp:numbers'].forEach((number)=>{
numbers.push(number);
});
}
resolve(numbers);
}).catch((err)=>{ }).catch((err)=>{
reject(err); reject(err);
}); });
@ -154,10 +131,11 @@ export function getNumbers() {
export function getFaxServerSettingsById(id) { export function getFaxServerSettingsById(id) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
Vue.http.get('api/faxserversettings/' + id).then((result) => { get({
var body = JSON.parse(result.body); path: 'api/faxserversettings/' + id
}).then((body)=>{
resolve(body.active); resolve(body.active);
}).catch((err) => { }).catch((err)=>{
reject(err); reject(err);
}); });
}); });

@ -180,8 +180,9 @@ export default {
if(!context.getters.userDataSucceeded) { if(!context.getters.userDataSucceeded) {
context.commit('userDataRequesting'); context.commit('userDataRequesting');
getUserData(localStorage.getItem('subscriberId')).then((result) => { getUserData(localStorage.getItem('subscriberId')).then((result) => {
let capabilities = Object.assign( let capabilities = Object.assign({
{ faxactive: result.faxactive }, faxactive: result.faxactive
},
result.capabilities result.capabilities
); );
context.commit('userDataSucceeded', { context.commit('userDataSucceeded', {
@ -194,10 +195,12 @@ export default {
}, context.getters.jwtTTL * 1000); }, context.getters.jwtTTL * 1000);
} }
if(context.getters.hasRtcEngineCapabilityEnabled) { if(context.getters.hasRtcEngineCapabilityEnabled) {
context.dispatch('call/initialize', null, { root: true }); context.dispatch('call/initialize', null, {
root: true
});
} }
}).catch((err)=>{ }).catch((err)=>{
context.commit('userDataFailed', err.message); console.error(err);
context.dispatch('logout'); context.dispatch('logout');
}); });
} }

Loading…
Cancel
Save