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

Big Refactor

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