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
6b773b25
Commit
6b773b25
authored
Apr 15, 2016
by
Patricio Bruna
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Creating resources with attributes working
parent
3f589551
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
719 additions
and
5 deletions
+719
-5
zimbra-admin-api.js
lib/zimbra-admin-api.js
+674
-2
zimbra-admin-api.js.map
lib/zimbra-admin-api.js.map
+1
-1
index.js
src/index.js
+4
-2
dictionary.js
src/utils/dictionary.js
+10
-0
test.js
test/js/spec/test.js
+30
-0
No files found.
lib/zimbra-admin-api.js
View file @
6b773b25
...
@@ -19326,7 +19326,8 @@ var ZimbraAdminApi =
...
@@ -19326,7 +19326,8 @@ var ZimbraAdminApi =
value: function createAccount(name, password, attributes, callback) {
value: function createAccount(name, password, attributes, callback) {
var resource_data = {
var resource_data = {
name: { '_content': name },
name: { '_content': name },
password: { '_content': password }
password: { '_content': password },
a: this.dictionary.attributesToArray(attributes)
};
};
this.create('Account', resource_data, callback);
this.create('Account', resource_data, callback);
}
}
...
@@ -19339,7 +19340,8 @@ var ZimbraAdminApi =
...
@@ -19339,7 +19340,8 @@ var ZimbraAdminApi =
key: 'createDomain',
key: 'createDomain',
value: function createDomain(name, attributes, callback) {
value: function createDomain(name, attributes, callback) {
var resource_data = {
var resource_data = {
name: { '_content': name }
name: { '_content': name },
a: this.dictionary.attributesToArray(attributes)
};
};
this.create('Domain', resource_data, callback);
this.create('Domain', resource_data, callback);
}
}
...
@@ -21077,6 +21079,14 @@ var ZimbraAdminApi =
...
@@ -21077,6 +21079,14 @@ var ZimbraAdminApi =
value: true
value: true
});
});
var _entries = __webpack_require__(546);
var _entries2 = _interopRequireDefault(_entries);
var _map = __webpack_require__(550);
var _map2 = _interopRequireDefault(_map);
var _classCallCheck2 = __webpack_require__(359);
var _classCallCheck2 = __webpack_require__(359);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
...
@@ -21122,6 +21132,17 @@ var ZimbraAdminApi =
...
@@ -21122,6 +21132,17 @@ var ZimbraAdminApi =
if (resource_identifier.match(uuid_regex)) return 'id';
if (resource_identifier.match(uuid_regex)) return 'id';
return 'name';
return 'name';
}
}
}, {
key: 'attributesToArray',
value: function attributesToArray(attributes) {
if ($.isEmptyObject(attributes)) return [];
var result = [];
var map = new _map2.default((0, _entries2.default)(attributes));
map.forEach(function (key, value) {
result.push({ 'n': value, '_content': key });
});
return result;
}
}, {
}, {
key: 'classFactory',
key: 'classFactory',
value: function classFactory(resource, object) {
value: function classFactory(resource, object) {
...
@@ -48018,6 +48039,657 @@ var ZimbraAdminApi =
...
@@ -48018,6 +48039,657 @@ var ZimbraAdminApi =
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(403).Buffer))
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(403).Buffer))
/***/ },
/* 546 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
module.exports = { "default": __webpack_require__(547), __esModule: true };
/***/ },
/* 547 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
__webpack_require__(548);
module.exports = __webpack_require__(306).Object.entries;
/***/ },
/* 548 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
// https://github.com/tc39/proposal-object-values-entries
var $export = __webpack_require__(304)
, $entries = __webpack_require__(549)(true);
$export($export.S, 'Object', {
entries: function entries(it){
return $entries(it);
}
});
/***/ },
/* 549 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
var getKeys = __webpack_require__(325)
, toIObject = __webpack_require__(327)
, isEnum = __webpack_require__(353).f;
module.exports = function(isEntries){
return function(it){
var O = toIObject(it)
, keys = getKeys(O)
, length = keys.length
, i = 0
, result = []
, key;
while(length > i)if(isEnum.call(O, key = keys[i++])){
result.push(isEntries ? [key, O[key]] : O[key]);
} return result;
};
};
/***/ },
/* 550 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
module.exports = { "default": __webpack_require__(551), __esModule: true };
/***/ },
/* 551 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
__webpack_require__(358);
__webpack_require__(298);
__webpack_require__(342);
__webpack_require__(552);
__webpack_require__(565);
module.exports = __webpack_require__(306).Map;
/***/ },
/* 552 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
'use strict';
var strong = __webpack_require__(553);
// 23.1 Map Objects
module.exports = __webpack_require__(562)('Map', function(get){
return function Map(){ return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.1.3.6 Map.prototype.get(key)
get: function get(key){
var entry = strong.getEntry(this, key);
return entry && entry.v;
},
// 23.1.3.9 Map.prototype.set(key, value)
set: function set(key, value){
return strong.def(this, key === 0 ? 0 : key, value);
}
}, strong, true);
/***/ },
/* 553 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
'use strict';
var dP = __webpack_require__(310).f
, create = __webpack_require__(323)
, hide = __webpack_require__(309)
, redefineAll = __webpack_require__(554)
, ctx = __webpack_require__(307)
, anInstance = __webpack_require__(555)
, defined = __webpack_require__(301)
, forOf = __webpack_require__(556)
, $iterDefine = __webpack_require__(302)
, step = __webpack_require__(345)
, setSpecies = __webpack_require__(561)
, DESCRIPTORS = __webpack_require__(314)
, fastKey = __webpack_require__(349).fastKey
, SIZE = DESCRIPTORS ? '_s' : 'size';
var getEntry = function(that, key){
// fast case
var index = fastKey(key), entry;
if(index !== 'F')return that._i[index];
// frozen object case
for(entry = that._f; entry; entry = entry.n){
if(entry.k == key)return entry;
}
};
module.exports = {
getConstructor: function(wrapper, NAME, IS_MAP, ADDER){
var C = wrapper(function(that, iterable){
anInstance(that, C, NAME, '_i');
that._i = create(null); // index
that._f = undefined; // first entry
that._l = undefined; // last entry
that[SIZE] = 0; // size
if(iterable != undefined)forOf(iterable, IS_MAP, that[ADDER], that);
});
redefineAll(C.prototype, {
// 23.1.3.1 Map.prototype.clear()
// 23.2.3.2 Set.prototype.clear()
clear: function clear(){
for(var that = this, data = that._i, entry = that._f; entry; entry = entry.n){
entry.r = true;
if(entry.p)entry.p = entry.p.n = undefined;
delete data[entry.i];
}
that._f = that._l = undefined;
that[SIZE] = 0;
},
// 23.1.3.3 Map.prototype.delete(key)
// 23.2.3.4 Set.prototype.delete(value)
'delete': function(key){
var that = this
, entry = getEntry(that, key);
if(entry){
var next = entry.n
, prev = entry.p;
delete that._i[entry.i];
entry.r = true;
if(prev)prev.n = next;
if(next)next.p = prev;
if(that._f == entry)that._f = next;
if(that._l == entry)that._l = prev;
that[SIZE]--;
} return !!entry;
},
// 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
// 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
forEach: function forEach(callbackfn /*, that = undefined */){
anInstance(this, C, 'forEach');
var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3)
, entry;
while(entry = entry ? entry.n : this._f){
f(entry.v, entry.k, this);
// revert to the last existing entry
while(entry && entry.r)entry = entry.p;
}
},
// 23.1.3.7 Map.prototype.has(key)
// 23.2.3.7 Set.prototype.has(value)
has: function has(key){
return !!getEntry(this, key);
}
});
if(DESCRIPTORS)dP(C.prototype, 'size', {
get: function(){
return defined(this[SIZE]);
}
});
return C;
},
def: function(that, key, value){
var entry = getEntry(that, key)
, prev, index;
// change existing entry
if(entry){
entry.v = value;
// create new entry
} else {
that._l = entry = {
i: index = fastKey(key, true), // <- index
k: key, // <- key
v: value, // <- value
p: prev = that._l, // <- previous entry
n: undefined, // <- next entry
r: false // <- removed
};
if(!that._f)that._f = entry;
if(prev)prev.n = entry;
that[SIZE]++;
// add to index
if(index !== 'F')that._i[index] = entry;
} return that;
},
getEntry: getEntry,
setStrong: function(C, NAME, IS_MAP){
// add .keys, .values, .entries, [@@iterator]
// 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
$iterDefine(C, NAME, function(iterated, kind){
this._t = iterated; // target
this._k = kind; // kind
this._l = undefined; // previous
}, function(){
var that = this
, kind = that._k
, entry = that._l;
// revert to the last existing entry
while(entry && entry.r)entry = entry.p;
// get next entry
if(!that._t || !(that._l = entry = entry ? entry.n : that._t._f)){
// or finish the iteration
that._t = undefined;
return step(1);
}
// return step by kind
if(kind == 'keys' )return step(0, entry.k);
if(kind == 'values')return step(0, entry.v);
return step(0, [entry.k, entry.v]);
}, IS_MAP ? 'entries' : 'values' , !IS_MAP, true);
// add [@@species], 23.1.2.2, 23.2.2.2
setSpecies(NAME);
}
};
/***/ },
/* 554 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
var hide = __webpack_require__(309);
module.exports = function(target, src, safe){
for(var key in src){
if(safe && target[key])target[key] = src[key];
else hide(target, key, src[key]);
} return target;
};
/***/ },
/* 555 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
module.exports = function(it, Constructor, name, forbiddenField){
if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){
throw TypeError(name + ': incorrect invocation!');
} return it;
};
/***/ },
/* 556 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
var ctx = __webpack_require__(307)
, call = __webpack_require__(557)
, isArrayIter = __webpack_require__(558)
, anObject = __webpack_require__(311)
, toLength = __webpack_require__(331)
, getIterFn = __webpack_require__(559);
module.exports = function(iterable, entries, fn, that, ITERATOR){
var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable)
, f = ctx(fn, that, entries ? 2 : 1)
, index = 0
, length, step, iterator;
if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!');
// fast case for arrays with default iterator
if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){
entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
} else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){
call(iterator, f, step.value, entries);
}
};
/***/ },
/* 557 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
// call something on iterator step with safe closing on error
var anObject = __webpack_require__(311);
module.exports = function(iterator, fn, value, entries){
try {
return entries ? fn(anObject(value)[0], value[1]) : fn(value);
// 7.4.6 IteratorClose(iterator, completion)
} catch(e){
var ret = iterator['return'];
if(ret !== undefined)anObject(ret.call(iterator));
throw e;
}
};
/***/ },
/* 558 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
// check on default Array iterator
var Iterators = __webpack_require__(321)
, ITERATOR = __webpack_require__(339)('iterator')
, ArrayProto = Array.prototype;
module.exports = function(it){
return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};
/***/ },
/* 559 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
var classof = __webpack_require__(560)
, ITERATOR = __webpack_require__(339)('iterator')
, Iterators = __webpack_require__(321);
module.exports = __webpack_require__(306).getIteratorMethod = function(it){
if(it != undefined)return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
};
/***/ },
/* 560 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = __webpack_require__(329)
, TAG = __webpack_require__(339)('toStringTag')
// ES3 wrong here
, ARG = cof(function(){ return arguments; }()) == 'Arguments';
// fallback for IE11 Script Access Denied error
var tryGet = function(it, key){
try {
return it[key];
} catch(e){ /* empty */ }
};
module.exports = function(it){
var O, T, B;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
: typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
// builtinTag case
: ARG ? cof(O)
// ES3 arguments fallback
: (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};
/***/ },
/* 561 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
'use strict';
var global = __webpack_require__(305)
, core = __webpack_require__(306)
, dP = __webpack_require__(310)
, DESCRIPTORS = __webpack_require__(314)
, SPECIES = __webpack_require__(339)('species');
module.exports = function(KEY){
var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY];
if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, {
configurable: true,
get: function(){ return this; }
});
};
/***/ },
/* 562 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
'use strict';
var global = __webpack_require__(305)
, $export = __webpack_require__(304)
, meta = __webpack_require__(349)
, fails = __webpack_require__(315)
, hide = __webpack_require__(309)
, redefineAll = __webpack_require__(554)
, forOf = __webpack_require__(556)
, anInstance = __webpack_require__(555)
, isObject = __webpack_require__(312)
, setToStringTag = __webpack_require__(338)
, dP = __webpack_require__(310).f
, each = __webpack_require__(563)(0)
, DESCRIPTORS = __webpack_require__(314);
module.exports = function(NAME, wrapper, methods, common, IS_MAP, IS_WEAK){
var Base = global[NAME]
, C = Base
, ADDER = IS_MAP ? 'set' : 'add'
, proto = C && C.prototype
, O = {};
if(!DESCRIPTORS || typeof C != 'function' || !(IS_WEAK || proto.forEach && !fails(function(){
new C().entries().next();
}))){
// create collection constructor
C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
redefineAll(C.prototype, methods);
meta.NEED = true;
} else {
C = wrapper(function(target, iterable){
anInstance(target, C, NAME, '_c');
target._c = new Base;
if(iterable != undefined)forOf(iterable, IS_MAP, target[ADDER], target);
});
each('add,clear,delete,forEach,get,has,set,keys,values,entries,toJSON'.split(','),function(KEY){
var IS_ADDER = KEY == 'add' || KEY == 'set';
if(KEY in proto && !(IS_WEAK && KEY == 'clear'))hide(C.prototype, KEY, function(a, b){
anInstance(this, C, KEY);
if(!IS_ADDER && IS_WEAK && !isObject(a))return KEY == 'get' ? undefined : false;
var result = this._c[KEY](a === 0 ? 0 : a, b);
return IS_ADDER ? this : result;
});
});
if('size' in proto)dP(C.prototype, 'size', {
get: function(){
return this._c.size;
}
});
}
setToStringTag(C, NAME);
O[NAME] = C;
$export($export.G + $export.W + $export.F, O);
if(!IS_WEAK)common.setStrong(C, NAME, IS_MAP);
return C;
};
/***/ },
/* 563 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__(307)
, IObject = __webpack_require__(328)
, toObject = __webpack_require__(341)
, toLength = __webpack_require__(331)
, asc = __webpack_require__(564);
module.exports = function(TYPE, $create){
var IS_MAP = TYPE == 1
, IS_FILTER = TYPE == 2
, IS_SOME = TYPE == 3
, IS_EVERY = TYPE == 4
, IS_FIND_INDEX = TYPE == 6
, NO_HOLES = TYPE == 5 || IS_FIND_INDEX
, create = $create || asc;
return function($this, callbackfn, that){
var O = toObject($this)
, self = IObject(O)
, f = ctx(callbackfn, that, 3)
, length = toLength(self.length)
, index = 0
, result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined
, val, res;
for(;length > index; index++)if(NO_HOLES || index in self){
val = self[index];
res = f(val, index, O);
if(TYPE){
if(IS_MAP)result[index] = res; // map
else if(res)switch(TYPE){
case 3: return true; // some
case 5: return val; // find
case 6: return index; // findIndex
case 2: result.push(val); // filter
} else if(IS_EVERY)return false; // every
}
}
return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
};
};
/***/ },
/* 564 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var isObject = __webpack_require__(312)
, isArray = __webpack_require__(354)
, SPECIES = __webpack_require__(339)('species');
module.exports = function(original, length){
var C;
if(isArray(original)){
C = original.constructor;
// cross-realm fallback
if(typeof C == 'function' && (C === Array || isArray(C.prototype)))C = undefined;
if(isObject(C)){
C = C[SPECIES];
if(C === null)C = undefined;
}
} return new (C === undefined ? Array : C)(length);
};
/***/ },
/* 565 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
var $export = __webpack_require__(304);
$export($export.P + $export.R, 'Map', {toJSON: __webpack_require__(566)('Map')});
/***/ },
/* 566 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
// https://github.com/DavidBruant/Map-Set.prototype.toJSON
var classof = __webpack_require__(560)
, from = __webpack_require__(567);
module.exports = function(NAME){
return function toJSON(){
if(classof(this) != NAME)throw TypeError(NAME + "#toJSON isn't generic");
return from(this);
};
};
/***/ },
/* 567 */
/***/ function(module, exports, __webpack_require__) {
/*** IMPORTS FROM imports-loader ***/
var $ = __webpack_require__(2);
var jQuery = __webpack_require__(2);
var forOf = __webpack_require__(556);
module.exports = function(iter, ITERATOR){
var result = [];
forOf(iter, false, result.push, result, ITERATOR);
return result;
};
/***/ }
/***/ }
/******/ ]);
/******/ ]);
//# sourceMappingURL=zimbra-admin-api.js.map
//# sourceMappingURL=zimbra-admin-api.js.map
\ No newline at end of file
lib/zimbra-admin-api.js.map
View file @
6b773b25
This source diff could not be displayed because it is too large. You can
view the blob
instead.
src/index.js
View file @
6b773b25
...
@@ -190,7 +190,8 @@ class ZimbraAdminApi {
...
@@ -190,7 +190,8 @@ class ZimbraAdminApi {
createAccount
(
name
,
password
,
attributes
,
callback
)
{
createAccount
(
name
,
password
,
attributes
,
callback
)
{
let
resource_data
=
{
let
resource_data
=
{
name
:
{
'_content'
:
name
},
name
:
{
'_content'
:
name
},
password
:
{
'_content'
:
password
}
password
:
{
'_content'
:
password
},
a
:
this
.
dictionary
.
attributesToArray
(
attributes
)
};
};
this
.
create
(
'Account'
,
resource_data
,
callback
);
this
.
create
(
'Account'
,
resource_data
,
callback
);
}
}
...
@@ -201,7 +202,8 @@ class ZimbraAdminApi {
...
@@ -201,7 +202,8 @@ class ZimbraAdminApi {
createDomain
(
name
,
attributes
,
callback
)
{
createDomain
(
name
,
attributes
,
callback
)
{
let
resource_data
=
{
let
resource_data
=
{
name
:
{
'_content'
:
name
}
name
:
{
'_content'
:
name
},
a
:
this
.
dictionary
.
attributesToArray
(
attributes
)
};
};
this
.
create
(
'Domain'
,
resource_data
,
callback
);
this
.
create
(
'Domain'
,
resource_data
,
callback
);
}
}
...
...
src/utils/dictionary.js
View file @
6b773b25
...
@@ -22,6 +22,16 @@ export default class Dictionary {
...
@@ -22,6 +22,16 @@ export default class Dictionary {
return
'name'
;
return
'name'
;
}
}
attributesToArray
(
attributes
)
{
if
(
$
.
isEmptyObject
(
attributes
))
return
[];
const
result
=
[]
const
map
=
new
Map
(
Object
.
entries
(
attributes
));
map
.
forEach
((
key
,
value
)
=>
{
result
.
push
({
'n'
:
value
,
'_content'
:
key
});
});
return
result
;
}
classFactory
(
resource
,
object
)
{
classFactory
(
resource
,
object
)
{
const
class_name
=
this
.
resourceToClass
(
resource
.
toLowerCase
());
const
class_name
=
this
.
resourceToClass
(
resource
.
toLowerCase
());
return
new
class_name
(
object
);
return
new
class_name
(
object
);
...
...
test/js/spec/test.js
View file @
6b773b25
...
@@ -177,6 +177,36 @@
...
@@ -177,6 +177,36 @@
});
});
});
});
it
(
'should create and return Domain with attributes'
,
function
(
done
){
let
resource_name
=
Date
.
now
()
+
'.dev'
;
let
resource_attributes
=
{
zimbraSkinLogoURL
:
'http://www.zboxapp.com'
,
postOfficeBox
:
'ZBoxApp'
};
let
api
=
new
ZimbraAdminApi
(
auth_data
);
let
callback
=
function
(
err
,
data
){
if
(
err
)
return
console
.
log
(
err
);
expect
(
data
.
attrs
.
zimbraSkinLogoURL
).
to
.
equal
(
'http://www.zboxapp.com'
);
expect
(
data
.
attrs
.
postOfficeBox
).
to
.
equal
(
'ZBoxApp'
);
done
();
};
api
.
createDomain
(
resource_name
,
resource_attributes
,
callback
);
});
it
(
'should create and return an account with extra attributes'
,
function
(
done
){
let
account_name
=
Date
.
now
()
+
'@zboxapp.dev'
;
let
account_password
=
Date
.
now
();
let
account_attributes
=
{
'sn'
:
'Bruna'
,
'givenName'
:
'Patricio'
};
let
api
=
new
ZimbraAdminApi
(
auth_data
);
api
.
createAccount
(
account_name
,
account_password
,
account_attributes
,
function
(
err
,
data
){
if
(
err
)
return
console
.
log
(
err
);
expect
(
data
.
attrs
.
sn
).
to
.
equal
(
'Bruna'
);
expect
(
data
.
attrs
.
givenName
).
to
.
equal
(
'Patricio'
);
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