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 ...@@ -14320,6 +14320,15 @@ return /******/ (function(modules) { // webpackBootstrap
key: 'batchResponse', key: 'batchResponse',
value: function batchResponse(data, callback) { value: function batchResponse(data, callback) {
var response_object = data.options.response.BatchResponse; 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); return callback(null, response_object);
} }
}, { }, {
...@@ -14454,6 +14463,12 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -14454,6 +14463,12 @@ return /******/ (function(modules) { // webpackBootstrap
'reason': err.Fault.Reason.Text, 'reason': err.Fault.Reason.Text,
'trace': err.Fault.Detail.Error.Trace '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 { } else {
return { 'code': err.status, 'reason': err.statusText }; return { 'code': err.status, 'reason': err.statusText };
} }
...@@ -43027,7 +43042,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -43027,7 +43042,7 @@ return /******/ (function(modules) { // webpackBootstrap
module.exports = { module.exports = {
"name": "zimbra-admin-api-js", "name": "zimbra-admin-api-js",
"version": "0.1", "version": "0.1.1",
"private": true, "private": true,
"main": "lib/zimbra-admin-api.js", "main": "lib/zimbra-admin-api.js",
"dependencies": { "dependencies": {
This diff is collapsed.
{ {
"name": "zimbra-admin-api-js", "name": "zimbra-admin-api-js",
"version": "0.1", "version": "0.1.1",
"private": true, "private": true,
"main": "lib/zimbra-admin-api.js", "main": "lib/zimbra-admin-api.js",
"dependencies": { "dependencies": {
......
...@@ -24,6 +24,13 @@ export default class ResponseParser { ...@@ -24,6 +24,13 @@ export default class ResponseParser {
static batchResponse(data, callback) { static batchResponse(data, callback) {
const response_object = data.options.response.BatchResponse; 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); return callback(null, response_object);
} }
......
...@@ -14,6 +14,12 @@ export default class Error { ...@@ -14,6 +14,12 @@ export default class Error {
'reason': err.Fault.Reason.Text, 'reason': err.Fault.Reason.Text,
'trace': err.Fault.Detail.Error.Trace '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 { } else {
return { 'code': err.status, 'reason': err.statusText }; return { 'code': err.status, 'reason': err.statusText };
} }
......
...@@ -164,6 +164,23 @@ ...@@ -164,6 +164,23 @@
api.login(getCallback); 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() { 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