Commit 0b89d61d authored by Patricio Bruna's avatar Patricio Bruna

Refactor makeRequest with performRequest and using data_request object instead of function params

parent 4258de2a
...@@ -19211,22 +19211,40 @@ var ZimbraAdminApi = ...@@ -19211,22 +19211,40 @@ var ZimbraAdminApi =
} }
}, { }, {
key: 'makeRequest', key: 'makeRequest',
value: function makeRequest(request, resource, params, parse_response, callback) { value: function makeRequest(request_data) {
var that = this; var that = this;
var request_object = that.buildRequest(); var request_object = that.buildRequest();
request_object.addRequest(params, function (err) { request_object.addRequest(request_data.params, function (err) {
if (err) { if (err) {
return that.handleError(err); return that.handleError(err);
} }
var obj = new Object(self); var obj = new Object(self);
obj.response_name = request + 'Response'; obj.response_name = request_data.request_name + 'Response';
obj.param_object_name = resource.toLocaleLowerCase(); obj.param_object_name = request_data.resource.toLocaleLowerCase();
that.client.send(request_object, function (err, data) { that.client.send(request_object, function (err, data) {
if (err) return callback(that.handleError(err)); if (err) return request_data.callback(that.handleError(err));
parse_response(data, obj, callback); request_data.parse_response(data, obj, request_data.callback);
}); });
}); });
} }
}, {
key: 'performRequest',
value: function performRequest(request_data) {
var _this = this;
if (this.client.token) {
this.makeRequest(request_data);
} else {
(function () {
var that = _this;
var getCallback = function getCallback(err, response) {
if (err) return this.handleError(err);
that.makeRequest(request_data);
};
_this.login(getCallback);
})();
}
}
}, { }, {
key: 'parseResponse', key: 'parseResponse',
value: function parseResponse(data, obj, callback) { value: function parseResponse(data, obj, callback) {
...@@ -19254,49 +19272,31 @@ var ZimbraAdminApi = ...@@ -19254,49 +19272,31 @@ var ZimbraAdminApi =
}, { }, {
key: 'get', key: 'get',
value: function get(resource, name_or_id, callback) { value: function get(resource, name_or_id, callback) {
var _this = this; var request_data = {};
request_data.params = this.requestParams();
var params = this.requestParams(); request_data.request_name = 'Get' + resource;
var request_name = 'Get' + resource; request_data.params.name = request_data.request_name + 'Request';
params.name = request_name + 'Request'; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseResponse;
var resource_name = this.dictionary.resourceResponseName(resource); var resource_name = this.dictionary.resourceResponseName(resource);
params.params[resource_name] = { request_data.params.params[resource_name] = {
'by': 'name', 'by': 'name',
'_content': name_or_id '_content': name_or_id
}; };
if (this.client.token) { this.performRequest(request_data);
this.makeRequest(request_name, resource, params, this.parseResponse, callback);
} else {
(function () {
var that = _this;
var getCallback = function getCallback(err, response) {
if (err) return this.handleError(err);
that.makeRequest(request_name, resource, params, that.parseResponse, callback);
};
_this.login(getCallback);
})();
}
} }
}, { }, {
key: 'getAll', key: 'getAll',
value: function getAll(resource, callback) { value: function getAll(resource, callback) {
var _this2 = this; var request_data = {};
request_data.params = this.requestParams();
var params = this.requestParams(); request_data.request_name = 'GetAll' + resource + 's';
var request_name = 'GetAll' + resource + 's'; request_data.params.name = request_data.request_name + 'Request';
params.name = request_name + 'Request'; request_data.resource = resource;
if (this.client.token) { request_data.callback = callback;
this.makeRequest(request_name, resource, params, this.parseAllResponse, callback); request_data.parse_response = this.parseAllResponse;
} else { this.performRequest(request_data);
(function () {
var that = _this2;
var getAllCallback = function getAllCallback(err, response) {
if (err) return this.handleError(err);
that.makeRequest(request_name, resource, params, that.parseAllResponse, callback);
};
_this2.login(getAllCallback);
})();
}
} }
}, { }, {
key: 'getAccount', key: 'getAccount',
This diff is collapsed.
...@@ -87,23 +87,37 @@ class ZimbraAdminApi { ...@@ -87,23 +87,37 @@ class ZimbraAdminApi {
return request; return request;
} }
makeRequest(request, resource, params, parse_response, callback) {
makeRequest(request_data) {
const that = this; const that = this;
let request_object = that.buildRequest(); let request_object = that.buildRequest();
request_object.addRequest(params, function(err){ request_object.addRequest(request_data.params, function(err){
if (err) { if (err) {
return that.handleError(err); return that.handleError(err);
} }
let obj = new Object(self); let obj = new Object(self);
obj.response_name = `${request}Response`; obj.response_name = `${request_data.request_name}Response`;
obj.param_object_name = resource.toLocaleLowerCase(); obj.param_object_name = request_data.resource.toLocaleLowerCase();
that.client.send(request_object, function(err, data){ that.client.send(request_object, function(err, data){
if (err) return callback(that.handleError(err)); if (err) return request_data.callback(that.handleError(err));
parse_response(data, obj, callback); request_data.parse_response(data, obj, request_data.callback);
}); });
}); });
} }
performRequest(request_data) {
if (this.client.token) {
this.makeRequest(request_data);
} else {
const that = this;
let getCallback = function(err, response){
if (err) return this.handleError(err);
that.makeRequest(request_data);
};
this.login(getCallback);
}
}
parseResponse(data, obj, callback) { parseResponse(data, obj, callback) {
const resource = obj.param_object_name.toLowerCase(); const resource = obj.param_object_name.toLowerCase();
const that = this; const that = this;
...@@ -128,40 +142,30 @@ class ZimbraAdminApi { ...@@ -128,40 +142,30 @@ class ZimbraAdminApi {
} }
get(resource, name_or_id, callback){ get(resource, name_or_id, callback){
let params = this.requestParams(); let request_data = { }
let request_name = `Get${resource}`; request_data.params = this.requestParams();
params.name = `${request_name}Request`; request_data.request_name = `Get${resource}`;
request_data.params.name = `${request_data.request_name}Request`;
request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseResponse;
let resource_name = this.dictionary.resourceResponseName(resource); let resource_name = this.dictionary.resourceResponseName(resource);
params.params[resource_name] = { request_data.params.params[resource_name] = {
'by': 'name', 'by': 'name',
'_content': name_or_id '_content': name_or_id
}; };
if (this.client.token) { this.performRequest(request_data);
this.makeRequest(request_name, resource, params, this.parseResponse, callback);
} else {
const that = this;
let getCallback = function(err, response){
if (err) return this.handleError(err);
that.makeRequest(request_name, resource, params, that.parseResponse, callback);
};
this.login(getCallback);
}
} }
getAll(resource, callback) { getAll(resource, callback) {
let params = this.requestParams(); let request_data = { }
let request_name = `GetAll${resource}s`; request_data.params = this.requestParams();
params.name = `${request_name}Request`; request_data.request_name = `GetAll${resource}s`;
if (this.client.token) { request_data.params.name = `${request_data.request_name}Request`;
this.makeRequest(request_name, resource, params, this.parseAllResponse, callback); request_data.resource = resource;
} else { request_data.callback = callback;
const that = this; request_data.parse_response = this.parseAllResponse;
let getAllCallback = function(err, response){ this.performRequest(request_data);
if (err) return this.handleError(err);
that.makeRequest(request_name, resource, params, that.parseAllResponse, callback);
};
this.login(getAllCallback);
}
} }
getAccount(identifier, callback) { getAccount(identifier, callback) {
......
...@@ -126,27 +126,23 @@ ...@@ -126,27 +126,23 @@
it('should return the DL', function(done){ it('should return the DL', function(done){
let api = new ZimbraAdminApi(auth_data); let api = new ZimbraAdminApi(auth_data);
console.log(api);
api.getDistributionList('abierta@customer.dev', function(err, data){ api.getDistributionList('abierta@customer.dev', function(err, data){
console.log(data);
expect(data.name).to.equal('abierta@customer.dev'); expect(data.name).to.equal('abierta@customer.dev');
done(); done();
}); });
}); });
// it('should get and return with name or id', function(done){ it('should get and return with name or id', function(done){
// let api = new ZimbraAdminApi(auth_data); let api = new ZimbraAdminApi(auth_data);
// let account_id = null; let resource_id = null;
// api.getAccount('admin@zboxapp.dev', function(err, data){ api.getDomain('zboxapp.dev', function(err, data){
// expect(data.constructor.name).to.equal('Account'); resource_id = data.id;
// expect(data.name).to.equal('admin@zboxapp.dev'); });
// account_id = data.id; api.getDomain(resource_id, function(err, data){
// }); expect(data.name).to.equal('zboxapp.dev');
// api.getAccount(account_id, function(err, data){ done();
// expect(data.name).to.equal('admin@zboxapp.dev'); });
// done(); });
// });
// });
}); });
})(); })();
......
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