Commit f4dc9c83 authored by Patricio Bruna's avatar Patricio Bruna

Account: setPassword, getMailbox, getMailboxSize

parent a84f8c1a
......@@ -262,6 +262,28 @@ zimbraApi.removeAccount(zimbraId, callback);
## Accounts
### Set Password
```javascript
account.setPassword(password, callback);
// {} if OK
// Error if not OK
```
### Get Mailbox
```javascript
account.getMailbox(callback);
// Object { mbxid: Mailbox ID, size: Quota Used}
//
```
### Get Mailbox Size
```javascript
account.getMailboxSize(callback);
// Returns a Integer represeting Bytes
//
```
### Cos Name
The account only has the Id of the Cos, `zimbraCOSId`, but not the name. To get the name you call `zimbraCosName` on the Account:
......
......@@ -20,7 +20,7 @@
* [ ] Devolver Fecha de la proxima renovación
* [ ] Devolver Empresa (esto entiendo necesitamos otro API)
* [X] Devolver Admins del dominio
* [ ] Devolver Listas de distribución del dominio
* [X] Devolver Listas de distribución del dominio
## parseResponse Class?
......
......@@ -620,11 +620,14 @@ return /******/ (function(modules) { // webpackBootstrap
};
this.performRequest(request_data);
}
// TODO: TO ugly
}, {
key: 'setPassword',
value: function setPassword(zimbra_id, password, callback) {
var request_data = {};
request_data.params = this.buildRequest();
request_data.params = this.requestParams();
request_data.request_name = "SetPassword";
request_data.params.name = request_data.request_name + 'Request';
request_data.params.params = {
......@@ -634,7 +637,40 @@ return /******/ (function(modules) { // webpackBootstrap
request_data.callback = callback;
var that = this;
request_data.parse_response = function (data, _, callback) {
return callback(null, data.response[0].SetPasswordResponse);
var response_object = data.response[0].SetPasswordResponse;
if (response_object.message) {
var err = {
status: 500,
statusText: response_object.message[0]._content,
responseJSON: {}
};
return callback(that.handleError(err));
} else {
return callback(null, {});
}
};
this.performRequest(request_data);
}
// TODO: Ugly
}, {
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';
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 = {
mbxid: response_object.mbxid,
account_id: response_object.id,
size: response_object.s
};
return callback(null, result);
};
this.performRequest(request_data);
}
......@@ -13457,7 +13493,6 @@ return /******/ (function(modules) { // webpackBootstrap
this.id = resource_obj.id;
this.attrs = this.buildAttrsMap(resource_obj.a);
this.api = zimbra_api_client;
this.raw_obj = resource_obj;
}
(0, _createClass3.default)(Zimbra, [{
......@@ -13475,17 +13510,6 @@ return /******/ (function(modules) { // webpackBootstrap
});
return attrs;
}
// getZimbraACEs () {
// const result = {};
// this.attrs.zimbraACE.forEach((ace) => {
// const split = ace.split(/\s+/);
// result.granteeId = split[0];
// result.granteeType = split[1];
// result.granteeId = split[2];
// });
// }
}]);
return Zimbra;
}();
......@@ -13548,11 +13572,24 @@ return /******/ (function(modules) { // webpackBootstrap
return null;
}
}
// setPassword(password, callback) {
// this.api.setPassword(this.id, password, callback);
// }
}, {
key: 'setPassword',
value: function setPassword(password, callback) {
this.api.setPassword(this.id, password, callback);
}
}, {
key: 'getMailbox',
value: function getMailbox(callback) {
this.api.getMailbox(this.id, callback);
}
}, {
key: 'getMailboxSize',
value: function getMailboxSize(callback) {
this.getMailbox(function (e, d) {
if (e) return callback(e);
return callback(null, d.size);
});
}
}]);
return Account;
}(_zimbra2.default); // Copyright (c) 2016 ZBox, Spa. All Rights Reserved.
This diff is collapsed.
......@@ -468,9 +468,10 @@ export default class ZimbraAdminApi {
this.performRequest(request_data);
}
// TODO: TO ugly
setPassword(zimbra_id, password, callback) {
const request_data = { };
request_data.params = this.buildRequest();
request_data.params = this.requestParams();
request_data.request_name = "SetPassword";
request_data.params.name = `${request_data.request_name}Request`;
request_data.params.params = {
......@@ -480,7 +481,37 @@ export default class ZimbraAdminApi {
request_data.callback = callback;
const that = this;
request_data.parse_response = function(data, _, callback){
return callback(null, data.response[0].SetPasswordResponse);
const response_object = data.response[0].SetPasswordResponse;
if (response_object.message) {
const err = {
status: 500,
statusText: response_object.message[0]._content,
responseJSON: {}
};
return callback(that.handleError(err));
} else {
return callback(null, {});
}
};
this.performRequest(request_data);
}
// 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`;
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 = {
mbxid: response_object.mbxid,
account_id: response_object.id,
size: response_object.s
};
return callback(null, result);
};
this.performRequest(request_data);
}
......
......@@ -19,8 +19,19 @@ export default class Account extends Zimbra {
}
}
// setPassword(password, callback) {
// this.api.setPassword(this.id, password, callback);
// }
setPassword(password, callback) {
this.api.setPassword(this.id, password, callback);
}
getMailbox(callback) {
this.api.getMailbox(this.id, callback);
}
getMailboxSize(callback) {
this.getMailbox(function(e,d){
if (e) return callback(e);
return callback(null, d.size);
});
}
}
......@@ -7,7 +7,6 @@ export default class Zimbra {
this.id = resource_obj.id;
this.attrs = this.buildAttrsMap(resource_obj.a);
this.api = zimbra_api_client;
this.raw_obj = resource_obj;
}
buildAttrsMap(obj_ary) {
......@@ -24,14 +23,4 @@ export default class Zimbra {
return attrs;
}
// getZimbraACEs () {
// const result = {};
// this.attrs.zimbraACE.forEach((ace) => {
// const split = ace.split(/\s+/);
// result.granteeId = split[0];
// result.granteeType = split[1];
// result.granteeId = split[2];
// });
// }
}
......@@ -240,9 +240,44 @@
let api = new ZimbraAdminApi(auth_data);
api.getAccount('pbruna@itlinux.cl', function(err, data){
let account = data;
account.setPassword('12345678910', function(err, data){
account.setPassword('123456789', function(err, data){
if (err) return console.log(err);
console.log(data);
expect(data).to.be.empty;
done();
});
});
});
it('Should Return Error for Invalid Password', function(done){
let api = new ZimbraAdminApi(auth_data);
api.getAccount('pbruna@itlinux.cl', function(err, data){
let account = data;
account.setPassword('', function(err, data){
expect(err.title).to.exist;
done();
});
});
});
it('Should Get The Account Mailbox', function(done){
let api = new ZimbraAdminApi(auth_data);
api.getAccount('pbruna@itlinux.cl', function(err, data){
let account = data;
account.getMailbox(function(err, data){
if (err) return console.log(err);
expect(data.size).to.be.exist;
done();
});
});
});
it('Should Get The Account Mailbox Size', function(done){
let api = new ZimbraAdminApi(auth_data);
api.getAccount('pbruna@itlinux.cl', function(err, data){
let account = data;
account.getMailboxSize(function(err, data){
if (err) return console.log(err);
expect(data).to.be.at.least(0);
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