Commit 307f31f0 authored by Patricio Bruna's avatar Patricio Bruna

Big Refactor

parent 25c76025
...@@ -140,6 +140,25 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -140,6 +140,25 @@ return /******/ (function(modules) { // webpackBootstrap
} }
(0, _createClass3.default)(ZimbraAdminApi, [{ (0, _createClass3.default)(ZimbraAdminApi, [{
key: 'buildRequestData',
value: function buildRequestData(request_name, callback) {
var request_data = {};
request_data.params = this.requestParams();
request_data.request_name = request_name;
request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response';
request_data.callback = callback;
return request_data;
}
}, {
key: 'buildResourceData',
value: function buildResourceData(name, attributes) {
return {
name: { '_content': name },
a: this.dictionary.attributesToArray(attributes)
};
}
}, {
key: 'requestParams', key: 'requestParams',
value: function requestParams() { value: function requestParams() {
return { namespace: 'zimbraAdmin', params: {} }; return { namespace: 'zimbraAdmin', params: {} };
...@@ -292,13 +311,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -292,13 +311,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'create', key: 'create',
value: function create(resource, resource_data, callback) { value: function create(resource, resource_data, callback) {
var request_data = {}; var request_data = this.buildRequestData('Create' + resource, callback);
request_data.params = this.requestParams();
request_data.request_name = 'Create' + resource;
request_data.response_name = 'Create' + resource + 'Response';
request_data.params.name = request_data.request_name + 'Request';
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseResponse; request_data.parse_response = this.parseResponse;
request_data.params.params = resource_data; request_data.params.params = resource_data;
this.performRequest(request_data); this.performRequest(request_data);
...@@ -306,13 +320,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -306,13 +320,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'remove', key: 'remove',
value: function remove(resource, resource_data, callback) { value: function remove(resource, resource_data, callback) {
var request_data = {}; var request_data = this.buildRequestData('Delete' + resource, callback);
request_data.params = this.requestParams();
request_data.request_name = 'Delete' + resource;
request_data.response_name = 'Delete' + resource + 'Response';
request_data.params.name = request_data.request_name + 'Request';
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = resource_data; request_data.params.params = resource_data;
this.performRequest(request_data); this.performRequest(request_data);
...@@ -320,13 +329,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -320,13 +329,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'modify', key: 'modify',
value: function modify(resource, resource_data, callback) { value: function modify(resource, resource_data, callback) {
var request_data = {}; var request_data = this.buildRequestData('Modify' + resource, callback);
request_data.params = this.requestParams();
request_data.request_name = 'Modify' + resource;
request_data.response_name = 'Modify' + resource + 'Response';
request_data.params.name = request_data.request_name + 'Request';
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseResponse; request_data.parse_response = this.parseResponse;
request_data.params.params = resource_data; request_data.params.params = resource_data;
this.performRequest(request_data); this.performRequest(request_data);
...@@ -334,13 +338,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -334,13 +338,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'get', key: 'get',
value: function get(resource, resource_identifier, callback) { value: function get(resource, resource_identifier, callback) {
var request_data = {}; var request_data = this.buildRequestData('Get' + resource, callback);
request_data.params = this.requestParams();
request_data.request_name = 'Get' + resource;
request_data.response_name = 'Get' + resource + 'Response';
request_data.params.name = request_data.request_name + 'Request';
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseResponse; request_data.parse_response = this.parseResponse;
var resource_name = this.dictionary.resourceResponseName(resource); var resource_name = this.dictionary.resourceResponseName(resource);
request_data.params.params[resource_name] = { request_data.params.params[resource_name] = {
...@@ -352,13 +351,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -352,13 +351,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'getAll', key: 'getAll',
value: function getAll(resource, callback) { value: function getAll(resource, callback) {
var request_data = {}; var request_data = this.buildRequestData('GetAll' + resource + 's', callback);
request_data.params = this.requestParams();
request_data.request_name = 'GetAll' + resource + 's';
request_data.response_name = 'GetAll' + resource + 'sResponse';
request_data.params.name = request_data.request_name + 'Request';
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseAllResponse; request_data.parse_response = this.parseAllResponse;
this.performRequest(request_data); this.performRequest(request_data);
} }
...@@ -373,7 +367,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -373,7 +367,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'grantRight', key: 'grantRight',
value: function grantRight(target_data, grantee_data, right_name, callback) { value: function grantRight(target_data, grantee_data, right_name, callback) {
var request_data = {}; var request_data = this.buildRequestData('GrantRight', callback);
var _dictionary$buildTarg = this.dictionary.buildTargetGrantee(target_data, grantee_data); var _dictionary$buildTarg = this.dictionary.buildTargetGrantee(target_data, grantee_data);
...@@ -382,11 +376,6 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -382,11 +376,6 @@ return /******/ (function(modules) { // webpackBootstrap
var target = _dictionary$buildTarg2[0]; var target = _dictionary$buildTarg2[0];
var grantee = _dictionary$buildTarg2[1]; var grantee = _dictionary$buildTarg2[1];
request_data.params = this.requestParams();
request_data.request_name = 'GrantRight';
request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response';
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params.grantee = grantee; request_data.params.params.grantee = grantee;
request_data.params.params.target = target; request_data.params.params.target = target;
...@@ -399,12 +388,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -399,12 +388,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'addAccountAlias', key: 'addAccountAlias',
value: function addAccountAlias(account_id, alias, callback) { value: function addAccountAlias(account_id, alias, callback) {
var request_data = {}; var request_data = this.buildRequestData('AddAccountAlias', callback);
request_data.params = this.requestParams();
request_data.request_name = 'AddAccountAlias';
request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response';
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { 'id': account_id, 'alias': alias }; request_data.params.params = { 'id': account_id, 'alias': alias };
this.performRequest(request_data); this.performRequest(request_data);
...@@ -416,12 +400,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -416,12 +400,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'addDistributionListMember', key: 'addDistributionListMember',
value: function addDistributionListMember(dl_id, members, callback) { value: function addDistributionListMember(dl_id, members, callback) {
var request_data = {}; var request_data = this.buildRequestData('AddDistributionListMember', callback);
request_data.params = this.requestParams();
request_data.request_name = 'AddDistributionListMember';
request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response';
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) }; request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) };
this.performRequest(request_data); this.performRequest(request_data);
...@@ -441,11 +420,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -441,11 +420,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'createAccount', key: 'createAccount',
value: function createAccount(name, password, attributes, callback) { value: function createAccount(name, password, attributes, callback) {
var resource_data = { var resource_data = this.buildResourceData(name, attributes);
name: { '_content': name }, resource_data.password = { '_content': password };
password: { '_content': password },
a: this.dictionary.attributesToArray(attributes)
};
this.create('Account', resource_data, callback); this.create('Account', resource_data, callback);
} }
}, { }, {
...@@ -461,10 +437,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -461,10 +437,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'createDomain', key: 'createDomain',
value: function createDomain(name, attributes, callback) { value: function createDomain(name, attributes, callback) {
var resource_data = { var resource_data = this.buildResourceData(name, attributes);
name: { '_content': name },
a: this.dictionary.attributesToArray(attributes)
};
this.create('Domain', resource_data, callback); this.create('Domain', resource_data, callback);
} }
}, { }, {
...@@ -475,10 +448,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -475,10 +448,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'createDistributionList', key: 'createDistributionList',
value: function createDistributionList(name, attributes, callback) { value: function createDistributionList(name, attributes, callback) {
var resource_data = { var resource_data = this.buildResourceData(name, attributes);
name: { '_content': name },
a: this.dictionary.attributesToArray(attributes)
};
this.create('DistributionList', resource_data, callback); this.create('DistributionList', resource_data, callback);
} }
}, { }, {
...@@ -516,14 +486,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -516,14 +486,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'getAllCos', key: 'getAllCos',
value: function getAllCos(callback) { value: function getAllCos(callback) {
var request_data = {}; var request_data = this.buildRequestData('GetAllCos', callback);
var resource = 'Cos'; request_data.resource = 'Cos';
request_data.params = this.requestParams();
request_data.request_name = 'GetAll' + resource;
request_data.response_name = 'GetAll' + resource + 'Response';
request_data.params.name = request_data.request_name + 'Request';
request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseAllResponse; request_data.parse_response = this.parseAllResponse;
this.performRequest(request_data); this.performRequest(request_data);
} }
...@@ -538,8 +502,6 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -538,8 +502,6 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'getGrants', key: 'getGrants',
value: function getGrants(target_data, grantee_data, callback) { value: function getGrants(target_data, grantee_data, callback) {
var request_data = {};
var _dictionary$buildTarg3 = this.dictionary.buildTargetGrantee(target_data, grantee_data); var _dictionary$buildTarg3 = this.dictionary.buildTargetGrantee(target_data, grantee_data);
var _dictionary$buildTarg4 = (0, _slicedToArray3.default)(_dictionary$buildTarg3, 2); var _dictionary$buildTarg4 = (0, _slicedToArray3.default)(_dictionary$buildTarg3, 2);
...@@ -547,13 +509,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -547,13 +509,8 @@ return /******/ (function(modules) { // webpackBootstrap
var target = _dictionary$buildTarg4[0]; var target = _dictionary$buildTarg4[0];
var grantee = _dictionary$buildTarg4[1]; var grantee = _dictionary$buildTarg4[1];
var resource = 'Grant'; var request_data = this.buildRequestData('GetGrants', callback);
request_data.params = this.requestParams(); request_data.resource = 'Grant';
request_data.request_name = 'Get' + resource + 's';
request_data.response_name = 'Get' + resource + 'sResponse';
request_data.params.name = request_data.request_name + 'Request';
request_data.callback = callback;
request_data.resource = resource;
request_data.parse_response = this.parseAllResponse; request_data.parse_response = this.parseAllResponse;
request_data.params.params.grantee = grantee; request_data.params.params.grantee = grantee;
request_data.params.params.target = target; request_data.params.params.target = target;
...@@ -565,11 +522,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -565,11 +522,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'getInfo', key: 'getInfo',
value: function getInfo(callback) { value: function getInfo(callback) {
var request_data = {}; var request_data = this.buildRequestData('GetInfo', callback);
request_data.params = { namespace: 'zimbraAccount' }; request_data.params.namespace = 'zimbraAccount';
request_data.request_name = "GetInfo";
request_data.params.name = request_data.request_name + 'Request';
request_data.callback = callback;
var that = this; var that = this;
request_data.parse_response = function (data, _, callback) { request_data.parse_response = function (data, _, callback) {
return callback(null, data.response[0].GetInfoResponse); return callback(null, data.response[0].GetInfoResponse);
...@@ -627,12 +581,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -627,12 +581,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'removeAccountAlias', key: 'removeAccountAlias',
value: function removeAccountAlias(account_id, alias, callback) { value: function removeAccountAlias(account_id, alias, callback) {
var request_data = {}; var request_data = this.buildRequestData('RemoveAccountAlias', callback);
request_data.params = this.requestParams();
request_data.request_name = 'RemoveAccountAlias';
request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response';
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { 'id': account_id, 'alias': alias }; request_data.params.params = { 'id': account_id, 'alias': alias };
this.performRequest(request_data); this.performRequest(request_data);
...@@ -662,12 +611,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -662,12 +611,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'removeDistributionListMember', key: 'removeDistributionListMember',
value: function removeDistributionListMember(dl_id, members, callback) { value: function removeDistributionListMember(dl_id, members, callback) {
var request_data = {}; var request_data = this.buildRequestData('RemoveDistributionListMember', callback);
request_data.params = this.requestParams();
request_data.request_name = 'RemoveDistributionListMember';
request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response';
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) }; request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) };
this.performRequest(request_data); this.performRequest(request_data);
...@@ -675,8 +619,6 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -675,8 +619,6 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'revokeRight', key: 'revokeRight',
value: function revokeRight(target_data, grantee_data, right_name, callback) { value: function revokeRight(target_data, grantee_data, right_name, callback) {
var request_data = {};
var _dictionary$buildTarg5 = this.dictionary.buildTargetGrantee(target_data, grantee_data); var _dictionary$buildTarg5 = this.dictionary.buildTargetGrantee(target_data, grantee_data);
var _dictionary$buildTarg6 = (0, _slicedToArray3.default)(_dictionary$buildTarg5, 2); var _dictionary$buildTarg6 = (0, _slicedToArray3.default)(_dictionary$buildTarg5, 2);
...@@ -684,11 +626,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -684,11 +626,7 @@ return /******/ (function(modules) { // webpackBootstrap
var target = _dictionary$buildTarg6[0]; var target = _dictionary$buildTarg6[0];
var grantee = _dictionary$buildTarg6[1]; var grantee = _dictionary$buildTarg6[1];
request_data.params = this.requestParams(); var request_data = this.buildRequestData('RevokeRight', callback);
request_data.request_name = 'RevokeRight';
request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response';
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params.grantee = grantee; request_data.params.params.grantee = grantee;
request_data.params.params.target = target; request_data.params.params.target = target;
...@@ -715,13 +653,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -715,13 +653,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'directorySearch', key: 'directorySearch',
value: function directorySearch(search_object, callback) { value: function directorySearch(search_object, callback) {
var request_data = {}; var request_data = this.buildRequestData('SearchDirectory', callback);
request_data.params = this.requestParams();
request_data.params.params = search_object; request_data.params.params = search_object;
request_data.request_name = "SearchDirectory";
request_data.response_name = "SearchDirectoryResponse";
request_data.params.name = request_data.request_name + 'Request';
request_data.callback = callback;
request_data.parse_response = this.parseSearchResponse; request_data.parse_response = this.parseSearchResponse;
this.performRequest(request_data); this.performRequest(request_data);
} }
...@@ -733,12 +666,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -733,12 +666,7 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'countAccounts', key: 'countAccounts',
value: function countAccounts(domain_idenfitier, callback) { value: function countAccounts(domain_idenfitier, callback) {
var request_data = {}; var request_data = this.buildRequestData('CountAccount', callback);
request_data.params = this.requestParams();
request_data.request_name = 'CountAccount';
request_data.response_name = 'CountAccountResponse';
request_data.params.name = request_data.request_name + 'Request';
request_data.callback = callback;
request_data.parse_response = this.parseCountAccountResponse; request_data.parse_response = this.parseCountAccountResponse;
request_data.params.params.domain = { request_data.params.params.domain = {
'by': this.dictionary.byIdOrName(domain_idenfitier), 'by': this.dictionary.byIdOrName(domain_idenfitier),
...@@ -752,15 +680,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -752,15 +680,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'setPassword', key: 'setPassword',
value: function setPassword(zimbra_id, password, callback) { value: function setPassword(zimbra_id, password, callback) {
var request_data = {}; var request_data = this.buildRequestData('SetPassword', callback);
request_data.params = this.requestParams(); request_data.params.params = { id: zimbra_id, newPassword: password };
request_data.request_name = "SetPassword";
request_data.params.name = request_data.request_name + 'Request';
request_data.params.params = {
id: zimbra_id,
newPassword: password
};
request_data.callback = callback;
var that = this; var that = this;
request_data.parse_response = function (data, _, callback) { request_data.parse_response = function (data, _, callback) {
var response_object = data.response[0].SetPasswordResponse; var response_object = data.response[0].SetPasswordResponse;
...@@ -783,12 +704,8 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -783,12 +704,8 @@ return /******/ (function(modules) { // webpackBootstrap
}, { }, {
key: 'getMailbox', key: 'getMailbox',
value: function getMailbox(zimbra_id, callback) { value: function getMailbox(zimbra_id, callback) {
var request_data = {}; var request_data = this.buildRequestData('GetMailbox', callback);
request_data.params = this.requestParams();
request_data.request_name = "GetMailbox";
request_data.params.name = request_data.request_name + 'Request';
request_data.params.params = { mbox: { id: zimbra_id } }; request_data.params.params = { mbox: { id: zimbra_id } };
request_data.callback = callback;
request_data.parse_response = function (data, _, callback) { request_data.parse_response = function (data, _, callback) {
var response_object = data.get().GetMailboxResponse.mbox[0]; var response_object = data.get().GetMailboxResponse.mbox[0];
var result = { var result = {
This source diff could not be displayed because it is too large. You can view the blob instead.
{ {
"name": "zimbra-admin-api-js", "name": "zimbra-admin-api-js",
"version": "0.0.15", "version": "0.0.16",
"private": true, "private": true,
"main": "lib/zimbra-admin-api.js", "main": "lib/zimbra-admin-api.js",
"dependencies": { "dependencies": {
......
...@@ -41,6 +41,22 @@ export default class ZimbraAdminApi { ...@@ -41,6 +41,22 @@ export default class ZimbraAdminApi {
this.dictionary = new Dictionary(); this.dictionary = new Dictionary();
} }
buildRequestData (request_name, callback) {
const request_data = { };
request_data.params = this.requestParams();
request_data.request_name = request_name;
request_data.params.name = `${request_data.request_name}Request`;
request_data.response_name = `${request_data.request_name}Response`;
request_data.callback = callback;
return(request_data);
}
buildResourceData (name, attributes) {
return {
name: { '_content': name },
a: this.dictionary.attributesToArray(attributes)
};
}
set token (token) { set token (token) {
this._token = token; this._token = token;
...@@ -186,26 +202,16 @@ export default class ZimbraAdminApi { ...@@ -186,26 +202,16 @@ export default class ZimbraAdminApi {
} }
create(resource, resource_data, callback){ create(resource, resource_data, callback){
let request_data = { }; const request_data = this.buildRequestData(`Create${resource}`, callback);
request_data.params = this.requestParams();
request_data.request_name = `Create${resource}`;
request_data.response_name = `Create${resource}Response`;
request_data.params.name = `${request_data.request_name}Request`;
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseResponse; request_data.parse_response = this.parseResponse;
request_data.params.params = resource_data; request_data.params.params = resource_data;
this.performRequest(request_data); this.performRequest(request_data);
} }
remove(resource, resource_data, callback){ remove(resource, resource_data, callback){
let request_data = { }; const request_data = this.buildRequestData(`Delete${resource}`, callback);
request_data.params = this.requestParams();
request_data.request_name = `Delete${resource}`;
request_data.response_name = `Delete${resource}Response`;
request_data.params.name = `${request_data.request_name}Request`;
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = resource_data; request_data.params.params = resource_data;
this.performRequest(request_data); this.performRequest(request_data);
...@@ -213,26 +219,16 @@ export default class ZimbraAdminApi { ...@@ -213,26 +219,16 @@ export default class ZimbraAdminApi {
modify(resource, resource_data, callback){ modify(resource, resource_data, callback){
let request_data = { }; const request_data = this.buildRequestData(`Modify${resource}`, callback);
request_data.params = this.requestParams();
request_data.request_name = `Modify${resource}`;
request_data.response_name = `Modify${resource}Response`;
request_data.params.name = `${request_data.request_name}Request`;
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseResponse; request_data.parse_response = this.parseResponse;
request_data.params.params = resource_data; request_data.params.params = resource_data;
this.performRequest(request_data); this.performRequest(request_data);
} }
get(resource, resource_identifier, callback){ get(resource, resource_identifier, callback){
let request_data = { }; const request_data = this.buildRequestData(`Get${resource}`, callback);
request_data.params = this.requestParams();
request_data.request_name = `Get${resource}`;
request_data.response_name = `Get${resource}Response`;
request_data.params.name = `${request_data.request_name}Request`;
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseResponse; request_data.parse_response = this.parseResponse;
let resource_name = this.dictionary.resourceResponseName(resource); let resource_name = this.dictionary.resourceResponseName(resource);
request_data.params.params[resource_name] = { request_data.params.params[resource_name] = {
...@@ -243,13 +239,8 @@ export default class ZimbraAdminApi { ...@@ -243,13 +239,8 @@ export default class ZimbraAdminApi {
} }
getAll(resource, callback) { getAll(resource, callback) {
let request_data = { }; const request_data = this.buildRequestData(`GetAll${resource}s`, callback);
request_data.params = this.requestParams();
request_data.request_name = `GetAll${resource}s`;
request_data.response_name = `GetAll${resource}sResponse`;
request_data.params.name = `${request_data.request_name}Request`;
request_data.resource = resource; request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseAllResponse; request_data.parse_response = this.parseAllResponse;
this.performRequest(request_data); this.performRequest(request_data);
} }
...@@ -261,13 +252,8 @@ export default class ZimbraAdminApi { ...@@ -261,13 +252,8 @@ export default class ZimbraAdminApi {
// identifier: (name or zimbraId) // identifier: (name or zimbraId)
// } // }
grantRight(target_data, grantee_data, right_name, callback) { grantRight(target_data, grantee_data, right_name, callback) {
const request_data = { }; const request_data = this.buildRequestData('GrantRight', callback);
const [target, grantee] = this.dictionary.buildTargetGrantee(target_data, grantee_data); const [target, grantee] = this.dictionary.buildTargetGrantee(target_data, grantee_data);
request_data.params = this.requestParams();
request_data.request_name = 'GrantRight';
request_data.params.name = `${request_data.request_name}Request`;
request_data.response_name = `${request_data.request_name}Response`;
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params.grantee = grantee; request_data.params.params.grantee = grantee;
request_data.params.params.target = target; request_data.params.params.target = target;
...@@ -278,12 +264,7 @@ export default class ZimbraAdminApi { ...@@ -278,12 +264,7 @@ export default class ZimbraAdminApi {
// Specific functions // Specific functions
addAccountAlias(account_id, alias, callback) { addAccountAlias(account_id, alias, callback) {
const request_data = { }; const request_data = this.buildRequestData('AddAccountAlias', callback);
request_data.params = this.requestParams();
request_data.request_name = 'AddAccountAlias';
request_data.params.name = `${request_data.request_name}Request`;
request_data.response_name = `${request_data.request_name}Response`;
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { 'id': account_id, 'alias': alias }; request_data.params.params = { 'id': account_id, 'alias': alias };
this.performRequest(request_data); this.performRequest(request_data);
...@@ -292,12 +273,7 @@ export default class ZimbraAdminApi { ...@@ -292,12 +273,7 @@ export default class ZimbraAdminApi {
// Add New members tos distributionlists // Add New members tos distributionlists
// members is an array of emails // members is an array of emails
addDistributionListMember(dl_id, members, callback) { addDistributionListMember(dl_id, members, callback) {
const request_data = { }; const request_data = this.buildRequestData('AddDistributionListMember', callback);
request_data.params = this.requestParams();
request_data.request_name = 'AddDistributionListMember';
request_data.params.name = `${request_data.request_name}Request`;
request_data.response_name = `${request_data.request_name}Response`;
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) }; request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) };
this.performRequest(request_data); this.performRequest(request_data);
...@@ -313,11 +289,8 @@ export default class ZimbraAdminApi { ...@@ -313,11 +289,8 @@ export default class ZimbraAdminApi {
// postOfficeBox: 'ZBoxApp' // postOfficeBox: 'ZBoxApp'
// }; // };
createAccount(name, password, attributes, callback) { createAccount(name, password, attributes, callback) {
let resource_data = { const resource_data = this.buildResourceData(name, attributes);
name: { '_content': name }, resource_data.password = { '_content': password };
password: { '_content': password },
a: this.dictionary.attributesToArray(attributes)
};
this.create('Account', resource_data, callback); this.create('Account', resource_data, callback);
} }
...@@ -330,10 +303,7 @@ export default class ZimbraAdminApi { ...@@ -330,10 +303,7 @@ export default class ZimbraAdminApi {
} }
createDomain(name, attributes, callback) { createDomain(name, attributes, callback) {
let resource_data = { const resource_data = this.buildResourceData(name, attributes);
name: { '_content': name },
a: this.dictionary.attributesToArray(attributes)
};
this.create('Domain', resource_data, callback); this.create('Domain', resource_data, callback);
} }
...@@ -342,10 +312,7 @@ export default class ZimbraAdminApi { ...@@ -342,10 +312,7 @@ export default class ZimbraAdminApi {
} }
createDistributionList(name, attributes, callback) { createDistributionList(name, attributes, callback) {
let resource_data = { const resource_data = this.buildResourceData(name, attributes);
name: { '_content': name },
a: this.dictionary.attributesToArray(attributes)
};
this.create('DistributionList', resource_data, callback); this.create('DistributionList', resource_data, callback);
} }
...@@ -371,14 +338,8 @@ export default class ZimbraAdminApi { ...@@ -371,14 +338,8 @@ export default class ZimbraAdminApi {
} }
getAllCos(callback) { getAllCos(callback) {
let request_data = { }; const request_data = this.buildRequestData('GetAllCos', callback);
const resource = 'Cos'; request_data.resource = 'Cos';
request_data.params = this.requestParams();
request_data.request_name = `GetAll${resource}`;
request_data.response_name = `GetAll${resource}Response`;
request_data.params.name = `${request_data.request_name}Request`;
request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseAllResponse; request_data.parse_response = this.parseAllResponse;
this.performRequest(request_data); this.performRequest(request_data);
} }
...@@ -390,15 +351,9 @@ export default class ZimbraAdminApi { ...@@ -390,15 +351,9 @@ export default class ZimbraAdminApi {
// identifier: (name or zimbraId) // identifier: (name or zimbraId)
// } // }
getGrants(target_data, grantee_data, callback) { getGrants(target_data, grantee_data, callback) {
const request_data = { };
const [target, grantee] = this.dictionary.buildTargetGrantee(target_data, grantee_data); const [target, grantee] = this.dictionary.buildTargetGrantee(target_data, grantee_data);
const resource = 'Grant'; const request_data = this.buildRequestData('GetGrants', callback);
request_data.params = this.requestParams(); request_data.resource = 'Grant';
request_data.request_name = `Get${resource}s`;
request_data.response_name = `Get${resource}sResponse`;
request_data.params.name = `${request_data.request_name}Request`;
request_data.callback = callback;
request_data.resource = resource;
request_data.parse_response = this.parseAllResponse; request_data.parse_response = this.parseAllResponse;
request_data.params.params.grantee = grantee; request_data.params.params.grantee = grantee;
request_data.params.params.target = target; request_data.params.params.target = target;
...@@ -407,11 +362,8 @@ export default class ZimbraAdminApi { ...@@ -407,11 +362,8 @@ export default class ZimbraAdminApi {
// Get current logged account information // Get current logged account information
getInfo(callback) { getInfo(callback) {
const request_data = { }; const request_data = this.buildRequestData('GetInfo', callback);
request_data.params = { namespace: 'zimbraAccount' }; request_data.params.namespace = 'zimbraAccount';
request_data.request_name = "GetInfo";
request_data.params.name = `${request_data.request_name}Request`;
request_data.callback = callback;
const that = this; const that = this;
request_data.parse_response = function(data, _, callback){ request_data.parse_response = function(data, _, callback){
return callback(null, data.response[0].GetInfoResponse); return callback(null, data.response[0].GetInfoResponse);
...@@ -454,12 +406,7 @@ export default class ZimbraAdminApi { ...@@ -454,12 +406,7 @@ export default class ZimbraAdminApi {
// Remove Account Alias // Remove Account Alias
removeAccountAlias(account_id, alias, callback) { removeAccountAlias(account_id, alias, callback) {
const request_data = { }; const request_data = this.buildRequestData('RemoveAccountAlias', callback);
request_data.params = this.requestParams();
request_data.request_name = 'RemoveAccountAlias';
request_data.params.name = `${request_data.request_name}Request`;
request_data.response_name = `${request_data.request_name}Response`;
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { 'id': account_id, 'alias': alias }; request_data.params.params = { 'id': account_id, 'alias': alias };
this.performRequest(request_data); this.performRequest(request_data);
...@@ -480,25 +427,15 @@ export default class ZimbraAdminApi { ...@@ -480,25 +427,15 @@ export default class ZimbraAdminApi {
// Add New members tos distributionlists // Add New members tos distributionlists
// members is one email or array of emails // members is one email or array of emails
removeDistributionListMember(dl_id, members, callback) { removeDistributionListMember(dl_id, members, callback) {
const request_data = { }; const request_data = this.buildRequestData('RemoveDistributionListMember', callback);
request_data.params = this.requestParams();
request_data.request_name = 'RemoveDistributionListMember';
request_data.params.name = `${request_data.request_name}Request`;
request_data.response_name = `${request_data.request_name}Response`;
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) }; request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) };
this.performRequest(request_data); this.performRequest(request_data);
} }
revokeRight(target_data, grantee_data, right_name, callback) { revokeRight(target_data, grantee_data, right_name, callback) {
const request_data = { };
const [target, grantee] = this.dictionary.buildTargetGrantee(target_data, grantee_data); const [target, grantee] = this.dictionary.buildTargetGrantee(target_data, grantee_data);
request_data.params = this.requestParams(); const request_data = this.buildRequestData('RevokeRight', callback);
request_data.request_name = 'RevokeRight';
request_data.params.name = `${request_data.request_name}Request`;
request_data.response_name = `${request_data.request_name}Response`;
request_data.callback = callback;
request_data.parse_response = this.parseEmptyResponse; request_data.parse_response = this.parseEmptyResponse;
request_data.params.params.grantee = grantee; request_data.params.params.grantee = grantee;
request_data.params.params.target = target; request_data.params.params.target = target;
...@@ -522,13 +459,8 @@ export default class ZimbraAdminApi { ...@@ -522,13 +459,8 @@ export default class ZimbraAdminApi {
// attrs: Comma separated list of attributes // attrs: Comma separated list of attributes
// } // }
directorySearch(search_object, callback) { directorySearch(search_object, callback) {
const request_data = { }; const request_data = this.buildRequestData(`SearchDirectory`, callback);
request_data.params = this.requestParams();
request_data.params.params = search_object; request_data.params.params = search_object;
request_data.request_name = "SearchDirectory";
request_data.response_name = "SearchDirectoryResponse";
request_data.params.name = `${request_data.request_name}Request`;
request_data.callback = callback;
request_data.parse_response = this.parseSearchResponse; request_data.parse_response = this.parseSearchResponse;
this.performRequest(request_data); this.performRequest(request_data);
} }
...@@ -537,12 +469,7 @@ export default class ZimbraAdminApi { ...@@ -537,12 +469,7 @@ export default class ZimbraAdminApi {
// Count Accounts // Count Accounts
// Count number of accounts by cos in a domain, // Count number of accounts by cos in a domain,
countAccounts(domain_idenfitier, callback) { countAccounts(domain_idenfitier, callback) {
const request_data = { }; const request_data = this.buildRequestData(`CountAccount`, callback);
request_data.params = this.requestParams();
request_data.request_name = 'CountAccount';
request_data.response_name = 'CountAccountResponse';
request_data.params.name = `${request_data.request_name}Request`;
request_data.callback = callback;
request_data.parse_response = this.parseCountAccountResponse; request_data.parse_response = this.parseCountAccountResponse;
request_data.params.params.domain = { request_data.params.params.domain = {
'by': this.dictionary.byIdOrName(domain_idenfitier), 'by': this.dictionary.byIdOrName(domain_idenfitier),
...@@ -553,15 +480,8 @@ export default class ZimbraAdminApi { ...@@ -553,15 +480,8 @@ export default class ZimbraAdminApi {
// TODO: TO ugly // TODO: TO ugly
setPassword(zimbra_id, password, callback) { setPassword(zimbra_id, password, callback) {
const request_data = { }; const request_data = this.buildRequestData(`SetPassword`, callback);
request_data.params = this.requestParams(); request_data.params.params = { id: zimbra_id, newPassword: password };
request_data.request_name = "SetPassword";
request_data.params.name = `${request_data.request_name}Request`;
request_data.params.params = {
id: zimbra_id,
newPassword: password
};
request_data.callback = callback;
const that = this; const that = this;
request_data.parse_response = function(data, _, callback){ request_data.parse_response = function(data, _, callback){
const response_object = data.response[0].SetPasswordResponse; const response_object = data.response[0].SetPasswordResponse;
...@@ -581,12 +501,8 @@ export default class ZimbraAdminApi { ...@@ -581,12 +501,8 @@ export default class ZimbraAdminApi {
// TODO: Ugly // TODO: Ugly
getMailbox(zimbra_id, callback) { getMailbox(zimbra_id, callback) {
const request_data = { }; const request_data = this.buildRequestData('GetMailbox', callback);
request_data.params = this.requestParams();
request_data.request_name = "GetMailbox";
request_data.params.name = `${request_data.request_name}Request`;
request_data.params.params = { mbox: { id: zimbra_id } }; request_data.params.params = { mbox: { id: zimbra_id } };
request_data.callback = callback;
request_data.parse_response = function(data, _, callback){ request_data.parse_response = function(data, _, callback){
const response_object = data.get().GetMailboxResponse.mbox[0]; const response_object = data.get().GetMailboxResponse.mbox[0];
const result = { const result = {
......
...@@ -155,11 +155,11 @@ ...@@ -155,11 +155,11 @@
it('should return directorySearch with total info', function(done){ it('should return directorySearch with total info', function(done){
let api = new ZimbraAdminApi(auth_data); let api = new ZimbraAdminApi(auth_data);
let query_object = {limit: 10, domain: 'customer.dev', types: "accounts,distributionlists,aliases"}; let query_object = {limit: 10, domain: 'customer.dev', types: "accounts"};
api.directorySearch(query_object, function(err, data){ api.directorySearch(query_object, function(err, data){
expect(data.more).to.equal(true); expect(data.more).to.equal(true);
expect(data.total).to.be.above(1); expect(data.total).to.be.above(1);
expect(data.account.length).to.be.at.least(2); expect(data.account.length).to.be.at.least(1);
done(); 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