Commit 16ad6aa7 authored by Patricio Bruna's avatar Patricio Bruna

BatchRequest now return errors. Fix #8

parent 4341d3cd
......@@ -14320,6 +14320,15 @@ return /******/ (function(modules) { // webpackBootstrap
key: 'batchResponse',
value: function batchResponse(data, callback) {
var response_object = data.options.response.BatchResponse;
if (response_object.Fault && response_object.Fault.length >= 1) {
(function () {
var errors = [];
response_object.Fault.forEach(function (e) {
errors.push(new _error2.default(e));
});
response_object.errors = errors;
})();
}
return callback(null, response_object);
}
}, {
......@@ -14454,6 +14463,12 @@ return /******/ (function(modules) { // webpackBootstrap
'reason': err.Fault.Reason.Text,
'trace': err.Fault.Detail.Error.Trace
};
} else if (err && err.Detail) {
return {
'code': err.Detail.Error.Code,
'reason': err.Reason.Text,
'trace': err.Detail.Error.Trace
};
} else {
return { 'code': err.status, 'reason': err.statusText };
}
......@@ -43027,7 +43042,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = {
"name": "zimbra-admin-api-js",
"version": "0.1",
"version": "0.1.1",
"private": true,
"main": "lib/zimbra-admin-api.js",
"dependencies": {
This source diff could not be displayed because it is too large. You can view the blob instead.
{
"name": "zimbra-admin-api-js",
"version": "0.1",
"version": "0.1.1",
"private": true,
"main": "lib/zimbra-admin-api.js",
"dependencies": {
......
......@@ -24,6 +24,13 @@ export default class ResponseParser {
static batchResponse(data, callback) {
const response_object = data.options.response.BatchResponse;
if(response_object.Fault && response_object.Fault.length >= 1 ) {
const errors = [];
response_object.Fault.forEach((e) =>{
errors.push(new Error(e));
});
response_object.errors = errors;
}
return callback(null, response_object);
}
......
......@@ -14,6 +14,12 @@ export default class Error {
'reason': err.Fault.Reason.Text,
'trace': err.Fault.Detail.Error.Trace
};
} else if (err && err.Detail) {
return {
'code': err.Detail.Error.Code,
'reason': err.Reason.Text,
'trace': err.Detail.Error.Trace
}
} else {
return { 'code': err.status, 'reason': err.statusText };
}
......
......@@ -164,6 +164,23 @@
api.login(getCallback);
});
it('Should return errors for BatchRequest', function(done){
let api = new ZimbraAdminApi(auth_data);
api.client.options.timeout = 5000;
const getAllAccounts = api.directorySearch({types: 'account'});
const deleteAccount = api.removeAccount('pollotron@example.com');
const getAllDomains = api.directorySearch({types: 'domains'});
api.login(function(err, data){
api.makeBatchRequest([deleteAccount, getAllDomains, getAllAccounts], function(err, data){
expect(data.errors.length).to.be.above(1);
expect(data.errors[0].constructor.name).to.equal('Error');
expect(data.errors[0].extra.code).to.exist;
expect(data.errors[1].extra.reason).to.exist;
done();
}, {onError: 'continue'});
});
});
});
describe('Account tests', function() {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment