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
4086c4b6
Commit
4086c4b6
authored
Apr 19, 2016
by
Patricio Bruna
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Modify Resources
parent
3b7130db
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
171 additions
and
77 deletions
+171
-77
README.md
README.md
+25
-1
TODOS.md
TODOS.md
+5
-1
zimbra-admin-api.js
lib/zimbra-admin-api.js
+50
-1
zimbra-admin-api.js.map
lib/zimbra-admin-api.js.map
+1
-1
index.js
src/index.js
+40
-1
test.js
test/js/spec/test.js
+50
-72
No files found.
README.md
View file @
4086c4b6
...
@@ -8,6 +8,7 @@
...
@@ -8,6 +8,7 @@
-
[
Zimbra Resources
](
#zimbra-resources
)
-
[
Zimbra Resources
](
#zimbra-resources
)
-
[
Common Functions
](
#common-functions
)
-
[
Common Functions
](
#common-functions
)
-
[
Creating Resources
](
#creating-resources
)
-
[
Creating Resources
](
#creating-resources
)
-
[
Modify Resources
](
#modify-resources
)
## Example
## Example
...
@@ -209,5 +210,28 @@ var zimbra_attributes = {
...
@@ -209,5 +210,28 @@ var zimbra_attributes = {
zimbraMailQuota
:
53687091200
zimbraMailQuota
:
53687091200
}
}
zimbraApi
.
createAccount
(
'user@example.com'
,
'SuP3rS3cur3P4ss'
,
zimbra_attributes
,
callback
);
zimbraApi
.
createAccount
(
'user@example.com'
,
'SuP3rS3cur3P4ss'
,
zimbra_attributes
,
callback
);
// Account {name: "user@customer.dev", id: "1919c856-08cc-43c9-b927-0c4cf88f50c7", attrs: Object}
// Account {name: "user@example.com", id: "1919c856-08cc-43c9-b927-0c4cf88f50c7", attrs: Object}
```
## Modify Resources
For updating resources
**you have**
to use the
`ZimbraId`
*
`modifyAccount(zimbra_id, attributes, callback)`
,
*
`modifyDomain(zimbra_id, attributes, callback)`
,
*
`modifyDistributionList(zimbra_id, attributes, callback)`
For example:
```
javascript
// Attributes to modify
var
zimbra_attributes
=
{
givenName
:
'Tom'
,
sn
:
'Hanks'
}
// user@example.com
var
zimbraId
=
"1919c856-08cc-43c9-b927-0c4cf88f50c7"
;
zimbraApi
.
modifyAccount
(
zimbraId
,
zimbra_attributes
,
callback
);
// Account {name: "user@example.com", id: "1919c856-08cc-43c9-b927-0c4cf88f50c7", attrs: Object}
```
```
TODOS.md
View file @
4086c4b6
## Todos los Resourcers
## Todos los Resourcers
*
[
]
Poder Modificar
*
[
X
]
Poder Modificar
*
[
]
Poder Elmininar
*
[
]
Poder Elmininar
## Accounts
*
[
]
Que Dominios administra
## Domains
## Domains
*
[
]
Devolver casillas segun el tipo de plan, cantidad asignadas y cantidad utilizadas para un dominio
*
[
]
Devolver casillas segun el tipo de plan, cantidad asignadas y cantidad utilizadas para un dominio
...
...
lib/zimbra-admin-api.js
View file @
4086c4b6
...
@@ -264,6 +264,20 @@ return /******/ (function(modules) { // webpackBootstrap
...
@@ -264,6 +264,20 @@ return /******/ (function(modules) { // webpackBootstrap
request_data.params.params = resource_data;
request_data.params.params = resource_data;
this.performRequest(request_data);
this.performRequest(request_data);
}
}
}, {
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';
request_data.resource = resource;
request_data.callback = callback;
request_data.parse_response = this.parseResponse;
request_data.params.params = resource_data;
this.performRequest(request_data);
}
}, {
}, {
key: 'get',
key: 'get',
value: function get(resource, resource_identifier, callback) {
value: function get(resource, resource_identifier, callback) {
...
@@ -386,7 +400,42 @@ return /******/ (function(modules) { // webpackBootstrap
...
@@ -386,7 +400,42 @@ return /******/ (function(modules) { // webpackBootstrap
this.performRequest(request_data);
this.performRequest(request_data);
}
}
// TODO: Fix this fucking code
// Modify Account
}, {
key: 'modifyAccount',
value: function modifyAccount(zimbra_id, attributes, callback) {
var resource_data = {
id: zimbra_id,
a: this.dictionary.attributesToArray(attributes)
};
this.modify('Account', resource_data, callback);
}
// Modify Domain
}, {
key: 'modifyDomain',
value: function modifyDomain(zimbra_id, attributes, callback) {
var resource_data = {
id: zimbra_id,
a: this.dictionary.attributesToArray(attributes)
};
this.modify('Domain', resource_data, callback);
}
// Modify DistributionList
}, {
key: 'modifyDistributionList',
value: function modifyDistributionList(zimbra_id, attributes, callback) {
var resource_data = {
id: zimbra_id,
a: this.dictionary.attributesToArray(attributes)
};
this.modify('DistributionList', resource_data, callback);
}
// Search the Directory
// Search the Directory
// search_object = {
// search_object = {
// query: An LDAP query or null for everything,
// query: An LDAP query or null for everything,
lib/zimbra-admin-api.js.map
View file @
4086c4b6
This diff is collapsed.
Click to expand it.
src/index.js
View file @
4086c4b6
...
@@ -169,6 +169,19 @@ export default class ZimbraAdminApi {
...
@@ -169,6 +169,19 @@ export default class ZimbraAdminApi {
this
.
performRequest
(
request_data
);
this
.
performRequest
(
request_data
);
}
}
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`
;
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
){
get
(
resource
,
resource_identifier
,
callback
){
let
request_data
=
{
};
let
request_data
=
{
};
request_data
.
params
=
this
.
requestParams
();
request_data
.
params
=
this
.
requestParams
();
...
@@ -266,7 +279,33 @@ export default class ZimbraAdminApi {
...
@@ -266,7 +279,33 @@ export default class ZimbraAdminApi {
this
.
performRequest
(
request_data
);
this
.
performRequest
(
request_data
);
}
}
// TODO: Fix this fucking code
// Modify Account
modifyAccount
(
zimbra_id
,
attributes
,
callback
)
{
let
resource_data
=
{
id
:
zimbra_id
,
a
:
this
.
dictionary
.
attributesToArray
(
attributes
)
};
this
.
modify
(
'Account'
,
resource_data
,
callback
);
}
// Modify Domain
modifyDomain
(
zimbra_id
,
attributes
,
callback
)
{
let
resource_data
=
{
id
:
zimbra_id
,
a
:
this
.
dictionary
.
attributesToArray
(
attributes
)
};
this
.
modify
(
'Domain'
,
resource_data
,
callback
);
}
// Modify DistributionList
modifyDistributionList
(
zimbra_id
,
attributes
,
callback
)
{
let
resource_data
=
{
id
:
zimbra_id
,
a
:
this
.
dictionary
.
attributesToArray
(
attributes
)
};
this
.
modify
(
'DistributionList'
,
resource_data
,
callback
);
}
// Search the Directory
// Search the Directory
// search_object = {
// search_object = {
// query: An LDAP query or null for everything,
// query: An LDAP query or null for everything,
...
...
test/js/spec/test.js
View file @
4086c4b6
...
@@ -231,78 +231,56 @@
...
@@ -231,78 +231,56 @@
});
});
});
});
it
(
'should modify Account attributes'
,
function
(
done
){
let
api
=
new
ZimbraAdminApi
(
auth_data
);
let
description
=
Date
.
now
().
toString
();
let
physicalDeliveryOfficeName
=
Date
.
now
().
toString
();
let
attributes
=
{
physicalDeliveryOfficeName
:
physicalDeliveryOfficeName
,
description
:
description
};
api
.
getAccount
(
'admin@zboxapp.dev'
,
function
(
err
,
data
){
if
(
err
)
return
console
.
log
(
err
);
api
.
modifyAccount
(
data
.
id
,
attributes
,
function
(
err
,
data
){
if
(
err
)
return
console
.
log
(
err
);
expect
(
data
.
attrs
.
description
).
to
.
be
.
equal
(
description
);
expect
(
data
.
attrs
.
physicalDeliveryOfficeName
).
to
.
be
.
equal
(
physicalDeliveryOfficeName
);
done
();
});
});
});
it
(
'should modify Domain attributes'
,
function
(
done
){
let
api
=
new
ZimbraAdminApi
(
auth_data
);
let
description
=
Date
.
now
().
toString
();
let
attributes
=
{
description
:
description
};
api
.
getDomain
(
'zboxapp.dev'
,
function
(
err
,
data
){
if
(
err
)
console
.
log
(
err
);
api
.
modifyDomain
(
data
.
id
,
attributes
,
function
(
err
,
data
){
expect
(
data
.
attrs
.
description
).
to
.
be
.
equal
(
description
);
done
();
});
});
});
it
(
'should modify DistributionList attributes'
,
function
(
done
){
let
api
=
new
ZimbraAdminApi
(
auth_data
);
let
description
=
Date
.
now
().
toString
();
let
attributes
=
{
description
:
description
};
api
.
getDistributionList
(
'abierta@customer.dev'
,
function
(
err
,
data
){
if
(
err
)
console
.
log
(
err
);
api
.
modifyDistributionList
(
data
.
id
,
attributes
,
function
(
err
,
data
){
expect
(
data
.
attrs
.
description
).
to
.
be
.
equal
(
description
);
done
();
});
});
});
});
});
})();
})();
// it('should get all domains', function() {
// let api = new ZimbraAdminApi(auth_data);
// var success = function(d){
// d.forEach(function(v){
// console.log(v.name);
// })
// };
// var error = function(d){console.log(d);};
// // sucess, err (Why)?
// api.getAllAccounts(function(data, err){
// if (err) return console.log(err);
// data.forEach(function(v){
// console.log(v.id + ' ' + v.name);
// })
// });
//
// });
//
//
// describe('Using callbacks', function() {
// it('should get a track', function() {
// var callback = sinon.spy();
// let api = new SpotifyWebApi();
// api.getTrack('3Qm86XLflmIXVm1wcwkgDK', callback);
// that.requests[0].respond(200,
// {'Content-Type':'application/json'},
// JSON.stringify(that.fixtures.track)
// );
// expect(callback.calledWith(null, that.fixtures.track)).to.be.ok;
// expect(that.requests).to.have.length(1);
// expect(that.requests[0].url).to.equal('https://api.spotify.com/v1/tracks/3Qm86XLflmIXVm1wcwkgDK');
// });
//
// it('should get multiple tracks', function() {
// var callback = sinon.spy();
// let api = new SpotifyWebApi();
// api.getTracks(['0eGsygTp906u18L0Oimnem', '1lDWb6b6ieDQ2xT7ewTC3G'], callback);
// that.requests[0].respond(200,
// {'Content-Type':'application/json'},
// JSON.stringify(that.fixtures.tracks)
// );
// expect(callback.calledWith(null, that.fixtures.tracks)).to.be.ok;
// expect(that.requests).to.have.length(1);
// expect(that.requests[0].url).to.equal('https://api.spotify.com/v1/tracks/?ids=0eGsygTp906u18L0Oimnem%2C1lDWb6b6ieDQ2xT7ewTC3G');
// });
//
// it('should get an album', function() {
// var callback = sinon.spy();
// let api = new SpotifyWebApi();
// api.getAlbum('0sNOF9WDwhWunNAHPD3Baj', callback);
// that.requests[0].respond(200,
// {'Content-Type':'application/json'},
// JSON.stringify(that.fixtures.album)
// );
// expect(callback.calledWith(null, that.fixtures.album)).to.be.ok;
// expect(that.requests).to.have.length(1);
// expect(that.requests[0].url).to.equal('https://api.spotify.com/v1/albums/0sNOF9WDwhWunNAHPD3Baj');
// });
//
// it('should get an albums\'s tracks', function() {
// var callback = sinon.spy();
// let api = new SpotifyWebApi();
// api.getAlbumTracks('0sNOF9WDwhWunNAHPD3Baj', callback);
// that.requests[0].respond(200,
// {'Content-Type':'application/json'},
// JSON.stringify(that.fixtures.album_tracks)
// );
// expect(callback.calledWith(null, that.fixtures.album_tracks)).to.be.ok;
// expect(that.requests).to.have.length(1);
// expect(that.requests[0].url).to.equal('https://api.spotify.com/v1/albums/0sNOF9WDwhWunNAHPD3Baj/tracks');
// });
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