platypush/platypush/backend/http/static/js/api.js

44 lines
1.1 KiB
JavaScript

function execute(request) {
var additionalPayload = {};
if (!('target' in request) || !request['target']) {
request['target'] = 'localhost';
}
if (!('type' in request) || !request['type']) {
request['type'] = 'request';
}
if (window.config.token) {
additionalPayload.headers = {
'X-Token': window.config.token
};
}
return new Promise((resolve, reject) => {
axios.post('/execute', request, additionalPayload)
.then((response) => {
response = response.data.response;
if (!response.errors.length) {
resolve(response.output);
} else {
// TODO Handle error
reject(response.errors[0]);
}
})
.catch((error) => {
// TODO Handle error
reject(error);
});
});
}
function request(action, args={}) {
return execute({
type: 'request',
action: action,
args: args,
});
}