UNPKG

viewpoint

Version:
123 lines (103 loc) 4.05 kB
var EWSBuilder, EWSFolderOperations, 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 = EWSFolderOperations = (function(superClass) { extend(EWSFolderOperations, superClass); function EWSFolderOperations() { return EWSFolderOperations.__super__.constructor.apply(this, arguments); } EWSFolderOperations.prototype.buildCreateFolder = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { return builder.nodeNS(NS_MESSAGES, 'CreateFolder', function(builder) { EWSBuilder.$parentFolderId(builder, opts.parentFolderId); return EWSBuilder.$folders(builder, opts.folders); }); }); }; EWSFolderOperations.prototype.createFolder = function(opts) { return this.doSoapRequest(this.buildCreateFolder(opts), 'EWSFoldersResponse'); }; EWSFolderOperations.prototype.buildDeleteFolder = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { var param; param = { DeleteType: opts.deleteType }; return builder.nodeNS(NS_MESSAGES, 'DeleteFolder', param, function(builder) { return EWSBuilder.$folderIds(builder, opts.folderIds); }); }); }; EWSFolderOperations.prototype.deleteFolder = function(opts) { return this.doSoapRequest(this.buildDeleteFolder(opts)); }; EWSFolderOperations.prototype.buildFindFolder = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { var param, ref; param = { Traversal: (ref = opts.traversal) != null ? ref : 'Shallow' }; return builder.nodeNS(NS_MESSAGES, 'FindFolder', param, function(builder) { EWSBuilder.$folderShape(builder, opts.folderShape); return EWSBuilder.$parentFolderIds(builder, opts.parentFolderIds); }); }); }; EWSFolderOperations.prototype.findFolder = function(opts) { return this.doSoapRequest(this.buildFindFolder(opts), 'EWSRootFolderResponse'); }; EWSFolderOperations.prototype.buildGetFolder = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { return builder.nodeNS(NS_MESSAGES, 'GetFolder', function(builder) { EWSBuilder.$folderShape(builder, opts.folderShape); return EWSBuilder.$folderIds(builder, opts.folderIds); }); }); }; EWSFolderOperations.prototype.getFolder = function(opts) { return this.doSoapRequest(this.buildGetFolder(opts), 'EWSFoldersResponse'); }; EWSFolderOperations.prototype.buildMoveFolder = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { return builder.nodeNS(NS_MESSAGES, 'MoveFolder', function(builder) { EWSBuilder.$toFolderId(builder, opts.toFolderId); return EWSBuilder.$folderIds(builder, opts.folderIds); }); }); }; EWSFolderOperations.prototype.moveFolder = function(opts) { return this.doSoapRequest(this.buildMoveFolder(opts), 'EWSFoldersResponse'); }; EWSFolderOperations.prototype.buildUpdateFolder = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { return builder.nodeNS(NS_MESSAGES, 'UpdateFolder', function(builder) { return EWSBuilder.$folderChanges(builder, opts); }); }); }; EWSFolderOperations.prototype.updateFolder = function(opts) { return this.doSoapRequest(this.buildUpdateFolder(opts), 'EWSFoldersResponse'); }; return EWSFolderOperations; })(Mixin);