Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Z
zimbra-admin-api-js
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Public
zimbra-admin-api-js
Commits
307f31f0
Commit
307f31f0
authored
Apr 25, 2016
by
Patricio Bruna
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Big Refactor
parent
25c76025
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
91 additions
and
258 deletions
+91
-258
zimbra-admin-api.js
lib/zimbra-admin-api.js
+45
-128
zimbra-admin-api.js.map
lib/zimbra-admin-api.js.map
+1
-1
package.json
package.json
+1
-1
index.js
src/index.js
+42
-126
test.js
test/js/spec/test.js
+2
-2
No files found.
lib/zimbra-admin-api.js
View file @
307f31f0
...
...
@@ -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 = {
lib/zimbra-admin-api.js.map
View file @
307f31f0
This source diff could not be displayed because it is too large. You can
view the blob
instead.
package.json
View file @
307f31f0
{
"name"
:
"zimbra-admin-api-js"
,
"version"
:
"0.0.1
5
"
,
"version"
:
"0.0.1
6
"
,
"private"
:
true
,
"main"
:
"lib/zimbra-admin-api.js"
,
"dependencies"
:
{
...
...
src/index.js
View file @
307f31f0
...
...
@@ -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
=
{
...
...
test/js/spec/test.js
View file @
307f31f0
...
...
@@ -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
();
});
});
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment