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/store/call-blocking.js

218 lines
7.6 KiB

'use strict';
import { enableIncomingCallBlocking,
disableIncomingCallBlocking,
getIncomingCallBlocking,
addNumberToIncomingList,
editNumberFromIncomingList,
removeNumberFromIncomingList,
enableOutgoingCallBlocking,
disableOutgoingCallBlocking,
getOutgoingCallBlocking,
addNumberToOutgoingList,
editNumberFromOutgoingList,
removeNumberFromOutgoingList,
enablePrivacyCallBlocking,
disablePrivacyCallBlocking,
getPrivacyCallBlocking
} from '../api/call-blocking';
export default {
namespaced: true,
state: {
incomingEnabled: false,
incomingList: [],
outgoingEnabled: false,
outgoingList: [],
privacyEnabled: false
},
getters: {},
mutations: {
enableIncoming (state) {
state.incomingEnabled = true;
},
disableIncoming (state) {
state.incomingEnabled = false;
},
loadIncoming(state, options) {
state.incomingEnabled = options.enabled;
state.incomingList = options.list;
},
enablePrivacy (state) {
state.privacyEnabled = true;
},
disablePrivacy (state) {
state.privacyEnabled= false;
},
loadPrivacy(state, options) {
state.privacyEnabled = options.enabled;
},
enableOutgoing (state) {
state.outgoingEnabled = true;
},
disableOutgoing (state) {
state.outgoingEnabled = false;
},
loadOutgoing(state, options) {
state.outgoingEnabled = options.enabled;
state.outgoingList = options.list;
}
},
actions: {
toggleIncoming(context, enabled) {
return new Promise((resolve, reject)=>{
if(enabled) {
enableIncomingCallBlocking(localStorage.getItem('subscriberId')).then(()=>{
context.commit('enableIncoming');
resolve();
}).catch((err)=>{
reject(err);
});
} else {
disableIncomingCallBlocking(localStorage.getItem('subscriberId')).then(()=>{
context.commit('disableIncoming');
resolve();
}).catch((err)=>{
reject(err);
});
}
});
},
loadIncoming(context) {
return new Promise((resolve, reject)=>{
getIncomingCallBlocking(localStorage.getItem('subscriberId')).then((result)=>{
context.commit('loadIncoming', result);
resolve();
}).catch((err)=>{
reject(err);
});
});
},
addNumberIncoming(context, number) {
return new Promise((resolve, reject)=>{
addNumberToIncomingList(localStorage.getItem('subscriberId'), number).then(()=>{
return context.dispatch('loadIncoming');
}).then(()=>{
resolve();
}).catch((err)=>{
reject(err);
});
});
},
editNumberIncoming(context, options) {
return new Promise((resolve, reject)=>{
editNumberFromIncomingList(localStorage.getItem('subscriberId'), options.index, options.number).then(()=>{
return context.dispatch('loadIncoming');
}).then(()=>{
resolve();
}).catch((err)=>{
reject(err);
});
});
},
removeNumberIncoming(context, index) {
return new Promise((resolve, reject)=>{
removeNumberFromIncomingList(localStorage.getItem('subscriberId'), index).then(()=>{
return context.dispatch('loadIncoming');
}).then(()=>{
resolve();
}).catch((err)=>{
reject(err);
});
});
},
toggleOutgoing(context, enabled) {
return new Promise((resolve, reject)=>{
if(enabled) {
enableOutgoingCallBlocking(localStorage.getItem('subscriberId')).then(()=>{
context.commit('enableOutgoing');
resolve();
}).catch((err)=>{
reject(err);
});
} else {
disableOutgoingCallBlocking(localStorage.getItem('subscriberId')).then(()=>{
context.commit('disableOutgoing');
resolve();
}).catch((err)=>{
reject(err);
});
}
});
},
loadOutgoing(context) {
return new Promise((resolve, reject)=>{
getOutgoingCallBlocking(localStorage.getItem('subscriberId')).then((result)=>{
context.commit('loadOutgoing', result);
resolve();
}).catch((err)=>{
reject(err);
});
});
},
addNumberOutgoing(context, number) {
return new Promise((resolve, reject)=>{
addNumberToOutgoingList(localStorage.getItem('subscriberId'), number).then(()=>{
return context.dispatch('loadOutgoing');
}).then(()=>{
resolve();
}).catch((err)=>{
reject(err);
});
});
},
editNumberOutgoing(context, options) {
return new Promise((resolve, reject)=>{
editNumberFromOutgoingList(localStorage.getItem('subscriberId'), options.index, options.number).then(()=>{
return context.dispatch('loadOutgoing');
}).then(()=>{
resolve();
}).catch((err)=>{
reject(err);
});
});
},
removeNumberOutgoing(context, index) {
return new Promise((resolve, reject)=>{
removeNumberFromOutgoingList(localStorage.getItem('subscriberId'), index).then(()=>{
return context.dispatch('loadOutgoing');
}).then(()=>{
resolve();
}).catch((err)=>{
reject(err);
});
});
},
togglePrivacy(context, enabled) {
return new Promise((resolve, reject)=>{
if(enabled) {
enablePrivacyCallBlocking(localStorage.getItem('subscriberId')).then(()=>{
context.commit('enablePrivacy');
resolve();
}).catch((err)=>{
reject(err);
});
} else {
disablePrivacyCallBlocking(localStorage.getItem('subscriberId')).then(()=>{
context.commit('disablePrivacy');
resolve();
}).catch((err)=>{
reject(err);
});
}
});
},
loadPrivacy(context) {
return new Promise((resolve, reject)=>{
getPrivacyCallBlocking(localStorage.getItem('subscriberId')).then((result)=>{
context.commit('loadPrivacy', result);
resolve();
}).catch((err)=>{
reject(err);
});
});
}
}
};