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
bea33a06
Commit
bea33a06
authored
May 26, 2016
by
Patricio Bruna
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Works with NodeJS
parent
e6592c8b
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
17934 additions
and
18113 deletions
+17934
-18113
zimbra-admin-api.js
lib/zimbra-admin-api.js
+17835
-18070
zimbra-admin-api.js.map
lib/zimbra-admin-api.js.map
+1
-1
index.js
src/index.js
+29
-15
dictionary.js
src/utils/dictionary.js
+12
-8
response_parser.js
src/utils/response_parser.js
+9
-5
account.js
src/zimbra/account.js
+6
-2
alias.js
src/zimbra/alias.js
+5
-1
cos.js
src/zimbra/cos.js
+6
-2
distribution_list.js
src/zimbra/distribution_list.js
+6
-2
domain.js
src/zimbra/domain.js
+6
-2
error.js
src/zimbra/error.js
+5
-1
grant.js
src/zimbra/grant.js
+5
-1
zimbra.js
src/zimbra/zimbra.js
+9
-3
No files found.
lib/zimbra-admin-api.js
View file @
bea33a06
This diff is collapsed.
Click to expand it.
lib/zimbra-admin-api.js.map
View file @
bea33a06
This diff is collapsed.
Click to expand it.
src/index.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
'use strict'
;
var
jszimbra
=
require
(
'js-zimbra'
);
var
jszimbra
=
require
(
'js-zimbra'
);
var
pjson
=
require
(
'../package.json'
);
var
pjson
=
require
(
'../package.json'
);
import
Dictionary
from
'./utils/dictionary.js'
;
var
Dictionary
=
require
(
'./utils/dictionary.js'
)
;
import
ResponseParser
from
'./utils/response_parser.js'
;
var
ResponseParser
=
require
(
'./utils/response_parser.js'
)
;
import
Error
from
'./zimbra/error.js'
;
var
ErrorBuilder
=
require
(
'./zimbra/error.js'
)
;
// TODO: To many parseResponse types
// TODO: To many parseResponse types
export
default
class
ZimbraAdminApi
{
class
ZimbraAdminApi
{
constructor
(
auth_object
)
{
constructor
(
auth_object
)
{
this
.
url
=
auth_object
.
url
;
this
.
url
=
auth_object
.
url
;
this
.
user
=
auth_object
.
user
;
this
.
user
=
auth_object
.
user
;
...
@@ -66,7 +68,7 @@ export default class ZimbraAdminApi {
...
@@ -66,7 +68,7 @@ export default class ZimbraAdminApi {
}
}
handleError
(
err
)
{
handleError
(
err
)
{
return
new
Error
(
err
);
return
new
Error
Builder
(
err
);
}
}
handleResponse
(
_
,
response
)
{
handleResponse
(
_
,
response
)
{
...
@@ -88,7 +90,8 @@ export default class ZimbraAdminApi {
...
@@ -88,7 +90,8 @@ export default class ZimbraAdminApi {
}
}
buildRequest
(
options
=
{})
{
buildRequest
(
options
)
{
options
=
options
||
{};
let
request
=
null
;
let
request
=
null
;
const
that
=
this
;
const
that
=
this
;
this
.
client
.
getRequest
(
options
,
(
err
,
req
)
=>
{
this
.
client
.
getRequest
(
options
,
(
err
,
req
)
=>
{
...
@@ -98,7 +101,8 @@ export default class ZimbraAdminApi {
...
@@ -98,7 +101,8 @@ export default class ZimbraAdminApi {
return
request
;
return
request
;
}
}
makeBatchRequest
(
request_data_array
,
callback
,
error
=
{
onError
:
'stop'
})
{
makeBatchRequest
(
request_data_array
,
callback
,
error
)
{
error
=
error
||
{
onError
:
'stop'
}
const
that
=
this
;
const
that
=
this
;
if
(
request_data_array
.
length
===
0
)
return
;
if
(
request_data_array
.
length
===
0
)
return
;
let
request_object
=
this
.
buildRequest
({
isBatch
:
true
,
batchOnError
:
error
.
onError
});
let
request_object
=
this
.
buildRequest
({
isBatch
:
true
,
batchOnError
:
error
.
onError
});
...
@@ -214,7 +218,9 @@ export default class ZimbraAdminApi {
...
@@ -214,7 +218,9 @@ export default class ZimbraAdminApi {
// }
// }
grantRight
(
target_data
,
grantee_data
,
right_name
,
callback
)
{
grantRight
(
target_data
,
grantee_data
,
right_name
,
callback
)
{
const
request_data
=
this
.
buildRequestData
(
'GrantRight'
,
callback
);
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
);
const
target
=
target_grantee
[
0
];
const
grantee
=
target_grantee
[
1
];
request_data
.
parse_response
=
ResponseParser
.
emptyResponse
;
request_data
.
parse_response
=
ResponseParser
.
emptyResponse
;
request_data
.
params
.
params
.
grantee
=
grantee
;
request_data
.
params
.
params
.
grantee
=
grantee
;
request_data
.
params
.
params
.
target
=
target
;
request_data
.
params
.
params
.
target
=
target
;
...
@@ -308,22 +314,26 @@ export default class ZimbraAdminApi {
...
@@ -308,22 +314,26 @@ export default class ZimbraAdminApi {
return
this
.
create
(
'DistributionList'
,
resource_data
,
callback
);
return
this
.
create
(
'DistributionList'
,
resource_data
,
callback
);
}
}
getAllDomains
(
callback
,
query_object
=
{})
{
getAllDomains
(
callback
,
query_object
)
{
query_object
=
query_object
||
{};
query_object
.
types
=
'domains'
;
query_object
.
types
=
'domains'
;
return
this
.
directorySearch
(
query_object
,
callback
);
return
this
.
directorySearch
(
query_object
,
callback
);
}
}
getAllAccounts
(
callback
,
query_object
=
{})
{
getAllAccounts
(
callback
,
query_object
)
{
query_object
=
query_object
||
{};
query_object
.
types
=
'accounts'
;
query_object
.
types
=
'accounts'
;
return
this
.
directorySearch
(
query_object
,
callback
);
return
this
.
directorySearch
(
query_object
,
callback
);
}
}
getAllDistributionLists
(
callback
,
query_object
=
{})
{
getAllDistributionLists
(
callback
,
query_object
)
{
query_object
=
query_object
||
{};
query_object
.
types
=
'distributionlists'
;
query_object
.
types
=
'distributionlists'
;
return
this
.
directorySearch
(
query_object
,
callback
);
return
this
.
directorySearch
(
query_object
,
callback
);
}
}
getAllAliases
(
callback
,
query_object
=
{})
{
getAllAliases
(
callback
,
query_object
)
{
query_object
=
query_object
||
{};
query_object
.
types
=
'aliases'
;
query_object
.
types
=
'aliases'
;
return
this
.
directorySearch
(
query_object
,
callback
);
return
this
.
directorySearch
(
query_object
,
callback
);
}
}
...
@@ -350,7 +360,9 @@ export default class ZimbraAdminApi {
...
@@ -350,7 +360,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
[
target
,
grantee
]
=
this
.
dictionary
.
buildTargetGrantee
(
target_data
,
grantee_data
);
const
target_grantee
=
this
.
dictionary
.
buildTargetGrantee
(
target_data
,
grantee_data
);
const
target
=
target_grantee
[
0
];
const
grantee
=
target_grantee
[
1
];
const
request_data
=
this
.
buildRequestData
(
'GetGrants'
,
callback
);
const
request_data
=
this
.
buildRequestData
(
'GetGrants'
,
callback
);
request_data
.
resource
=
'Grant'
;
request_data
.
resource
=
'Grant'
;
request_data
.
parse_response
=
ResponseParser
.
allResponse
;
request_data
.
parse_response
=
ResponseParser
.
allResponse
;
...
@@ -443,7 +455,9 @@ export default class ZimbraAdminApi {
...
@@ -443,7 +455,9 @@ export default class ZimbraAdminApi {
}
}
revokeRight
(
target_data
,
grantee_data
,
right_name
,
callback
)
{
revokeRight
(
target_data
,
grantee_data
,
right_name
,
callback
)
{
const
[
target
,
grantee
]
=
this
.
dictionary
.
buildTargetGrantee
(
target_data
,
grantee_data
);
const
target_grantee
=
this
.
dictionary
.
buildTargetGrantee
(
target_data
,
grantee_data
);
const
target
=
target_grantee
[
0
];
const
grantee
=
target_grantee
[
1
];
const
request_data
=
this
.
buildRequestData
(
'RevokeRight'
,
callback
);
const
request_data
=
this
.
buildRequestData
(
'RevokeRight'
,
callback
);
request_data
.
parse_response
=
ResponseParser
.
emptyResponse
;
request_data
.
parse_response
=
ResponseParser
.
emptyResponse
;
request_data
.
params
.
params
.
grantee
=
grantee
;
request_data
.
params
.
params
.
grantee
=
grantee
;
...
@@ -530,5 +544,5 @@ export default class ZimbraAdminApi {
...
@@ -530,5 +544,5 @@ export default class ZimbraAdminApi {
if
(
typeof
module
===
'object'
&&
typeof
module
.
exports
===
'object'
)
{
if
(
typeof
module
===
'object'
&&
typeof
module
.
exports
===
'object'
)
{
module
.
exports
=
ZimbraAdminApi
;
module
.
exports
=
ZimbraAdminApi
;
}
else
{
}
else
{
global
.
window
.
ZimbraAdminApi
=
ZimbraAdminApi
;
window
.
ZimbraAdminApi
=
ZimbraAdminApi
;
}
}
src/utils/dictionary.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
import
Domain
from
'./../zimbra/domain.js'
;
'use strict'
;
import
Account
from
'./../zimbra/account.js'
;
import
Alias
from
'./../zimbra/alias.js'
;
var
Domain
=
require
(
'./../zimbra/domain.js'
);
import
Cos
from
'./../zimbra/cos.js'
;
var
Account
=
require
(
'./../zimbra/account.js'
);
import
Grant
from
'./../zimbra/grant.js'
;
var
Alias
=
require
(
'./../zimbra/alias.js'
);
import
DistributionList
from
'./../zimbra/distribution_list.js'
;
var
Cos
=
require
(
'./../zimbra/cos.js'
);
var
Grant
=
require
(
'./../zimbra/grant.js'
);
export
default
class
Dictionary
{
var
DistributionList
=
require
(
'./../zimbra/distribution_list.js'
);
class
Dictionary
{
constructor
()
{
constructor
()
{
this
.
zimbra_resources
=
this
.
ZimbraResources
();
this
.
zimbra_resources
=
this
.
ZimbraResources
();
}
}
...
@@ -176,3 +178,5 @@ export default class Dictionary {
...
@@ -176,3 +178,5 @@ export default class Dictionary {
}
}
}
}
module
.
exports
=
Dictionary
;
\ No newline at end of file
src/utils/response_parser.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
import
Dictionary
from
'./dictionary.js'
;
'use strict'
;
import
Error
from
'../zimbra/error.js'
;
export
default
class
ResponseParser
{
var
Dictionary
=
require
(
'./dictionary.js'
);
var
ErrorBuilder
=
require
(
'../zimbra/error.js'
);
class
ResponseParser
{
static
dictionary
()
{
static
dictionary
()
{
return
new
Dictionary
();
return
new
Dictionary
();
...
@@ -27,7 +29,7 @@ export default class ResponseParser {
...
@@ -27,7 +29,7 @@ export default class ResponseParser {
if
(
response_object
.
Fault
&&
response_object
.
Fault
.
length
>=
1
)
{
if
(
response_object
.
Fault
&&
response_object
.
Fault
.
length
>=
1
)
{
const
errors
=
[];
const
errors
=
[];
response_object
.
Fault
.
forEach
((
e
)
=>
{
response_object
.
Fault
.
forEach
((
e
)
=>
{
errors
.
push
(
new
Error
(
e
));
errors
.
push
(
new
Error
Builder
(
e
));
});
});
response_object
.
errors
=
errors
;
response_object
.
errors
=
errors
;
}
}
...
@@ -114,10 +116,12 @@ export default class ResponseParser {
...
@@ -114,10 +116,12 @@ export default class ResponseParser {
statusText
:
response_object
.
message
[
0
].
_content
,
statusText
:
response_object
.
message
[
0
].
_content
,
responseJSON
:
{}
responseJSON
:
{}
};
};
return
callback
(
new
Error
(
err
));
return
callback
(
new
Error
Builder
(
err
));
}
else
{
}
else
{
return
callback
(
null
,
{});
return
callback
(
null
,
{});
}
}
}
}
}
}
module
.
exports
=
ResponseParser
;
\ No newline at end of file
src/zimbra/account.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
import
Zimbra
from
'./zimbra.js
'
;
'use strict
'
;
export
default
class
Account
extends
Zimbra
{
var
Zimbra
=
require
(
'./zimbra.js'
);
class
Account
extends
Zimbra
{
constructor
(
account_obj
,
zimbra_api_client
)
{
constructor
(
account_obj
,
zimbra_api_client
)
{
super
(
account_obj
,
zimbra_api_client
);
super
(
account_obj
,
zimbra_api_client
);
this
.
domain
=
this
.
name
.
split
(
/@/
)[
1
];
this
.
domain
=
this
.
name
.
split
(
/@/
)[
1
];
...
@@ -66,3 +68,5 @@ export default class Account extends Zimbra {
...
@@ -66,3 +68,5 @@ export default class Account extends Zimbra {
}
}
}
}
module
.
exports
=
Account
;
\ No newline at end of file
src/zimbra/alias.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
export
default
class
Alias
{
'use strict'
;
class
Alias
{
constructor
(
resource_obj
)
{
constructor
(
resource_obj
)
{
this
.
name
=
resource_obj
.
name
;
this
.
name
=
resource_obj
.
name
;
this
.
id
=
resource_obj
.
id
;
this
.
id
=
resource_obj
.
id
;
this
.
targetName
=
resource_obj
.
targetName
;
this
.
targetName
=
resource_obj
.
targetName
;
}
}
}
}
module
.
exports
=
Alias
;
\ No newline at end of file
src/zimbra/cos.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
import
Zimbra
from
'./zimbra.js
'
;
'use strict
'
;
export
default
class
Cos
extends
Zimbra
{
var
Zimbra
=
require
(
'./zimbra.js'
);
class
Cos
extends
Zimbra
{
constructor
(
cos_obj
,
zimbra_api_client
)
{
constructor
(
cos_obj
,
zimbra_api_client
)
{
super
(
cos_obj
,
zimbra_api_client
);
super
(
cos_obj
,
zimbra_api_client
);
}
}
}
}
module
.
exports
=
Cos
;
\ No newline at end of file
src/zimbra/distribution_list.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
import
Zimbra
from
'./zimbra.js
'
;
'use strict
'
;
export
default
class
DistributionList
extends
Zimbra
{
var
Zimbra
=
require
(
'./zimbra.js'
);
class
DistributionList
extends
Zimbra
{
constructor
(
dl_obj
,
zimbra_api_client
)
{
constructor
(
dl_obj
,
zimbra_api_client
)
{
super
(
dl_obj
,
zimbra_api_client
);
super
(
dl_obj
,
zimbra_api_client
);
this
.
members
=
this
.
parseMembers
(
dl_obj
);
this
.
members
=
this
.
parseMembers
(
dl_obj
);
...
@@ -81,3 +83,5 @@ export default class DistributionList extends Zimbra {
...
@@ -81,3 +83,5 @@ export default class DistributionList extends Zimbra {
}
}
module
.
exports
=
DistributionList
;
\ No newline at end of file
src/zimbra/domain.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
import
Zimbra
from
'./zimbra.js
'
;
'use strict
'
;
export
default
class
Domain
extends
Zimbra
{
var
Zimbra
=
require
(
'./zimbra.js'
);
class
Domain
extends
Zimbra
{
constructor
(
domain_obj
,
zimbra_api_client
)
{
constructor
(
domain_obj
,
zimbra_api_client
)
{
super
(
domain_obj
,
zimbra_api_client
);
super
(
domain_obj
,
zimbra_api_client
);
this
.
domainAdminRights
=
'domainAdminRights'
;
this
.
domainAdminRights
=
'domainAdminRights'
;
...
@@ -98,3 +100,5 @@ export default class Domain extends Zimbra {
...
@@ -98,3 +100,5 @@ export default class Domain extends Zimbra {
}
}
}
}
module
.
exports
=
Domain
;
\ No newline at end of file
src/zimbra/error.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
export
default
class
Error
{
'use strict'
;
class
Error
{
constructor
(
err
)
{
constructor
(
err
)
{
this
.
code
=
err
.
Fault
?
err
.
Fault
.
Code
.
Value
:
err
.
status
;
this
.
code
=
err
.
Fault
?
err
.
Fault
.
Code
.
Value
:
err
.
status
;
this
.
extra
=
this
.
getErrorInfo
(
err
);
this
.
extra
=
this
.
getErrorInfo
(
err
);
...
@@ -25,3 +27,5 @@ export default class Error {
...
@@ -25,3 +27,5 @@ export default class Error {
}
}
}
}
}
}
module
.
exports
=
Error
;
\ No newline at end of file
src/zimbra/grant.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
export
default
class
Grant
{
'use strict'
;
class
Grant
{
constructor
(
grant
)
{
constructor
(
grant
)
{
this
.
grantee
=
grant
.
grantee
[
0
];
this
.
grantee
=
grant
.
grantee
[
0
];
this
.
target
=
grant
.
target
[
0
];
this
.
target
=
grant
.
target
[
0
];
...
@@ -21,3 +23,5 @@ export default class Grant {
...
@@ -21,3 +23,5 @@ export default class Grant {
}
}
}
}
module
.
exports
=
Grant
;
\ No newline at end of file
src/zimbra/zimbra.js
View file @
bea33a06
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
// See LICENSE.txt for license information.
// See LICENSE.txt for license information.
export
default
class
Zimbra
{
'use strict'
;
class
Zimbra
{
constructor
(
resource_obj
,
zimbra_api_client
)
{
constructor
(
resource_obj
,
zimbra_api_client
)
{
this
.
name
=
resource_obj
.
name
;
this
.
name
=
resource_obj
.
name
;
this
.
id
=
resource_obj
.
id
;
this
.
id
=
resource_obj
.
id
;
...
@@ -56,12 +58,16 @@ export default class Zimbra {
...
@@ -56,12 +58,16 @@ export default class Zimbra {
});
});
}
}
grantRight
(
grantee_data
,
right_name
,
callback
,
forBatch
=
false
){
grantRight
(
grantee_data
,
right_name
,
callback
,
forBatch
){
forBatch
=
forBatch
||
false
;
return
this
.
api
.
grantRight
(
this
.
buildRighTargetData
(),
grantee_data
,
right_name
,
callback
,
forBatch
);
return
this
.
api
.
grantRight
(
this
.
buildRighTargetData
(),
grantee_data
,
right_name
,
callback
,
forBatch
);
}
}
revokeRight
(
grantee_data
,
right_name
,
callback
,
forBatch
=
false
){
revokeRight
(
grantee_data
,
right_name
,
callback
,
forBatch
){
forBatch
=
forBatch
||
false
;
return
this
.
api
.
revokeRight
(
this
.
buildRighTargetData
(),
grantee_data
,
right_name
,
callback
,
forBatch
);
return
this
.
api
.
revokeRight
(
this
.
buildRighTargetData
(),
grantee_data
,
right_name
,
callback
,
forBatch
);
}
}
}
}
module
.
exports
=
Zimbra
;
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