Commit e042fe47 authored by Patricio Bruna's avatar Patricio Bruna

Added Archiving Functions

parent 93efc869
...@@ -297,6 +297,26 @@ account.setPassword(password, callback); ...@@ -297,6 +297,26 @@ account.setPassword(password, callback);
// Error if not OK // Error if not OK
``` ```
### Enable and Disable Archive
**Only Zimbra Network Edition**
`Enable` can take the following options:
* **create**: `(0|1)` if the archive mailbox should be created. Default its 1, create.
* **name**: Name of the archive mailbox, if empty the template will be used.
* **cos_id**: Name or ID of the COS to assign to the archive mailbox.
* **password**: password of the archive mailbox.
* **attributes**.
```javascript
account.enableArchive({ cos_id: 'default' }, callback);
// {}
account.disableArchive(callback);
// {}
```
### Get Mailbox ### Get Mailbox
```javascript ```javascript
account.getMailbox(callback); account.getMailbox(callback);
......
...@@ -123,6 +123,7 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -123,6 +123,7 @@ return /******/ (function(modules) { // webpackBootstrap
// TODO: Eliminar dependencia de client que se pasa a todos lados // TODO: Eliminar dependencia de client que se pasa a todos lados
request_data.client = this; request_data.client = this;
request_data.params = this.requestParams(); request_data.params = this.requestParams();
request_data.params.params = {};
request_data.request_name = request_name; request_data.request_name = request_name;
request_data.params.name = request_data.request_name + 'Request'; request_data.params.name = request_data.request_name + 'Request';
request_data.response_name = request_data.request_name + 'Response'; request_data.response_name = request_data.request_name + 'Response';
...@@ -343,6 +344,37 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -343,6 +344,37 @@ return /******/ (function(modules) { // webpackBootstrap
request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) }; request_data.params.params = { id: dl_id, dlm: this.dictionary.convertToZimbraArray(members) };
return this.performRequest(request_data); return this.performRequest(request_data);
} }
// Enable Archiving for an Account
// options = {create: (0|1), name: 'archive_account_name', cos: _cos_id, password:}
// Docs: https://files.zimbra.com/docs/soap_api/8.6.0/api-reference/zimbraAdmin/EnableArchive.html
}, {
key: 'enableArchive',
value: function enableArchive(account_id, options, callback) {
var request_data = this.buildRequestData('EnableArchive', callback);
request_data.parse_response = _response_parser2.default.emptyResponse;
var account = { by: this.dictionary.byIdOrName(account_id), _content: account_id };
var archive = {
create: options.archive || 1,
name: { '_content': options.name },
cos: { by: this.dictionary.byIdOrName(options.cos_id), '_content': options.cos_id },
password: { '_content': options.password },
a: this.dictionary.attributesToArray(options.attributes)
};
request_data.params.params.account = account;
request_data.params.params.archive = archive;
return this.performRequest(request_data);
}
}, {
key: 'disableArchive',
value: function disableArchive(account_id, callback) {
var request_data = this.buildRequestData('DisableArchive', callback);
request_data.parse_response = _response_parser2.default.emptyResponse;
var account = { by: this.dictionary.byIdOrName(account_id), _content: account_id };
request_data.params.params.account = account;
return this.performRequest(request_data);
}
}, { }, {
key: 'getAccount', key: 'getAccount',
value: function getAccount(identifier, callback) { value: function getAccount(identifier, callback) {
...@@ -13880,6 +13912,16 @@ return /******/ (function(modules) { // webpackBootstrap ...@@ -13880,6 +13912,16 @@ return /******/ (function(modules) { // webpackBootstrap
return null; return null;
} }
} }
}, {
key: 'enableArchive',
value: function enableArchive(options, callback) {
return this.api.enableArchive(this.id, options, callback);
}
}, {
key: 'disableArchive',
value: function disableArchive(callback) {
return this.api.disableArchive(this.id, callback);
}
}, { }, {
key: 'setPassword', key: 'setPassword',
value: function setPassword(password, callback) { value: function setPassword(password, callback) {
This diff is collapsed.
{ {
"name": "zimbra-admin-api-js", "name": "zimbra-admin-api-js",
"version": "0.0.22", "version": "0.0.23",
"private": true, "private": true,
"main": "lib/zimbra-admin-api.js", "main": "lib/zimbra-admin-api.js",
"dependencies": { "dependencies": {
......
...@@ -21,6 +21,7 @@ export default class ZimbraAdminApi { ...@@ -21,6 +21,7 @@ export default class ZimbraAdminApi {
// TODO: Eliminar dependencia de client que se pasa a todos lados // TODO: Eliminar dependencia de client que se pasa a todos lados
request_data.client = this; request_data.client = this;
request_data.params = this.requestParams(); request_data.params = this.requestParams();
request_data.params.params = {};
request_data.request_name = request_name; request_data.request_name = request_name;
request_data.params.name = `${request_data.request_name}Request`; request_data.params.name = `${request_data.request_name}Request`;
request_data.response_name = `${request_data.request_name}Response`; request_data.response_name = `${request_data.request_name}Response`;
...@@ -219,6 +220,33 @@ export default class ZimbraAdminApi { ...@@ -219,6 +220,33 @@ export default class ZimbraAdminApi {
return this.performRequest(request_data); return this.performRequest(request_data);
} }
// Enable Archiving for an Account
// options = {create: (0|1), name: 'archive_account_name', cos: _cos_id, password:}
// Docs: https://files.zimbra.com/docs/soap_api/8.6.0/api-reference/zimbraAdmin/EnableArchive.html
enableArchive(account_id, options, callback) {
const request_data = this.buildRequestData('EnableArchive', callback);
request_data.parse_response = ResponseParser.emptyResponse;
const account = { by: this.dictionary.byIdOrName(account_id), _content: account_id };
const archive = {
create: (options.archive || 1),
name: { '_content': options.name },
cos: { by: this.dictionary.byIdOrName(options.cos_id), '_content': options.cos_id },
password: { '_content': options.password },
a: this.dictionary.attributesToArray(options.attributes)
};
request_data.params.params.account = account;
request_data.params.params.archive = archive;
return this.performRequest(request_data);
}
disableArchive(account_id, callback) {
const request_data = this.buildRequestData('DisableArchive', callback);
request_data.parse_response = ResponseParser.emptyResponse;
const account = { by: this.dictionary.byIdOrName(account_id), _content: account_id };
request_data.params.params.account = account;
return this.performRequest(request_data);
}
getAccount(identifier, callback) { getAccount(identifier, callback) {
return this.get('Account', identifier, callback); return this.get('Account', identifier, callback);
} }
......
...@@ -24,6 +24,14 @@ export default class Account extends Zimbra { ...@@ -24,6 +24,14 @@ export default class Account extends Zimbra {
} }
} }
enableArchive(options, callback) {
return this.api.enableArchive(this.id, options, callback);
}
disableArchive(callback) {
return this.api.disableArchive(this.id, callback);
}
setPassword(password, callback) { setPassword(password, callback) {
this.api.setPassword(this.id, password, callback); this.api.setPassword(this.id, password, callback);
} }
......
...@@ -324,7 +324,6 @@ ...@@ -324,7 +324,6 @@
done(); done();
}); });
}); });
}); });
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment