viewpoint
Version:
the exchange email API for nodejs module
65 lines (53 loc) • 2.24 kB
JavaScript
var EWSBuilder, EWSSyncOperations, Mixin, NS_MESSAGES,
extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },
hasProp = {}.hasOwnProperty;
Mixin = require('mixto');
EWSBuilder = require('../ews-builder');
NS_MESSAGES = require('../ews-ns').NS_MESSAGES;
module.exports = EWSSyncOperations = (function(superClass) {
extend(EWSSyncOperations, superClass);
function EWSSyncOperations() {
return EWSSyncOperations.__super__.constructor.apply(this, arguments);
}
EWSSyncOperations.prototype.buildSyncFolderItems = function(opts) {
if (opts == null) {
opts = {};
}
return EWSBuilder.build(function(builder) {
return builder.nodeNS(NS_MESSAGES, 'SyncFolderItems', function(builder) {
var mr;
EWSBuilder.$itemShape(builder, opts.itemShape);
EWSBuilder.$syncFolderId(builder, opts.syncFolderId);
if (opts.syncState) {
EWSBuilder.$syncState(builder, opts.syncState);
}
if ((mr = opts.maxChangesReturned) != null) {
return EWSBuilder.$maxChangesReturned(builder, mr);
}
});
});
};
EWSSyncOperations.prototype.syncFolderItems = function(opts) {
return this.doSoapRequest(this.buildSyncFolderItems(opts), 'EWSSyncResponse');
};
EWSSyncOperations.prototype.buildSyncFolderHierarchy = function(opts) {
if (opts == null) {
opts = {};
}
return EWSBuilder.build(function(builder) {
return builder.nodeNS(NS_MESSAGES, 'SyncFolderHierarchy', function(builder) {
EWSBuilder.$folderShape(builder, opts.folderShape);
if (opts.syncFolderId) {
EWSBuilder.$syncFolderId(builder, opts.syncFolderId);
}
if (opts.syncState) {
return EWSBuilder.$syncState(builder, opts.syncState);
}
});
});
};
EWSSyncOperations.prototype.syncFolderHierarchy = function(opts) {
return this.doSoapRequest(this.buildSyncFolderHierarchy(opts), 'EWSSyncResponse');
};
return EWSSyncOperations;
})(Mixin);