UNPKG

viewpoint

Version:
182 lines (159 loc) 5.89 kB
var EWSBuilder, EWSItemOperations, 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 = EWSItemOperations = (function(superClass) { extend(EWSItemOperations, superClass); function EWSItemOperations() { return EWSItemOperations.__super__.constructor.apply(this, arguments); } EWSItemOperations.prototype.buildFindItem = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { var ref, traversal; traversal = (ref = opts['traversal']) != null ? ref : 'Shallow'; return builder.nodeNS(NS_MESSAGES, 'FindItem', { Traversal: traversal }, function(builder) { var itemView; EWSBuilder.$itemShape(builder, opts.itemShape); if ((itemView = opts.indexedPageItemView) != null) { EWSBuilder.$indexedPageItemView(builder, itemView); } return EWSBuilder.$parentFolderIds(builder, opts.parentFolderIds); }); }); }; EWSItemOperations.prototype.findItem = function(opts) { return this.doSoapRequest(this.buildFindItem(opts), 'EWSRootFolderResponse'); }; EWSItemOperations.prototype.buildGetItem = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { return builder.nodeNS(NS_MESSAGES, 'GetItem', function(builder) { if (opts.itemShape != null) { EWSBuilder.$itemShape(builder, opts.itemShape); } if (opts.itemIds != null) { return EWSBuilder.$itemIds(builder, opts.itemIds); } }); }); }; EWSItemOperations.prototype.getItem = function(opts) { return this.doSoapRequest(this.buildGetItem(opts), 'EWSItemsResponse'); }; EWSItemOperations.prototype.buildCreateItem = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { var param, ref; param = { MessageDisposition: (ref = opts.messageDisposition) != null ? ref : 'SaveOnly' }; return builder.nodeNS(NS_MESSAGES, 'CreateItem', param, function(builder) { if (opts.savedItemFolderId != null) { EWSBuilder.$savedItemFolderId(builder, opts.savedItemFolderId); } if (opts.items != null) { return EWSBuilder.$items(builder, opts.items); } }); }); }; EWSItemOperations.prototype.createItem = function(opts) { return this.doSoapRequest(this.buildCreateItem(opts), 'EWSItemsResponse'); }; EWSItemOperations.prototype.buildCopyOrMoveItem = function(nodeName, opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { return builder.nodeNS(NS_MESSAGES, nodeName, function(builder) { if (opts.toFolderId) { EWSBuilder.$toFolderId(builder, opts.toFolderId); } if (opts.itemIds) { EWSBuilder.$itemIds(builder, opts.itemIds); } if (opts.returnNewItemIds) { return EWSBuilder.$returnNewItemIds(builder, opts.returnNewItemIds); } }); }); }; EWSItemOperations.prototype.copyItem = function(opts) { return this.doSoapRequest(this.buildCopyOrMoveItem('CopyItem', opts), 'EWSItemsResponse'); }; EWSItemOperations.prototype.moveItem = function(opts) { return this.doSoapRequest(this.buildCopyOrMoveItem('MoveItem', opts), 'EWSItemsResponse'); }; EWSItemOperations.prototype.buildDeleteItem = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { var param; param = { DeleteType: opts.deleteType }; return builder.nodeNS(NS_MESSAGES, 'DeleteItem', param, function(builder) { return EWSBuilder.$itemIds(builder, opts.itemIds); }); }); }; EWSItemOperations.prototype.deleteItem = function(opts) { return this.doSoapRequest(this.buildDeleteItem(opts)); }; EWSItemOperations.prototype.buildSendItem = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { var param; if (opts.saveItemToFolder == null) { opts.saveItemToFolder = opts.savedItemFolderId != null; } param = { SaveItemToFolder: opts.saveItemToFolder }; return builder.nodeNS(NS_MESSAGES, 'SendItem', param, function(builder) { EWSBuilder.$itemIds(builder, opts.itemIds); if (opts.savedItemFolderId) { return EWSBuilder.$savedItemFolderId(builder, opts.savedItemFolderId); } }); }); }; EWSItemOperations.prototype.sendItem = function(opts) { return this.doSoapRequest(this.buildSendItem(opts)); }; EWSItemOperations.prototype.buildUpdateItem = function(opts) { if (opts == null) { opts = {}; } return EWSBuilder.build(function(builder) { var param, ref; param = { MessageDisposition: (ref = opts.messageDisposition) != null ? ref : 'SaveOnly' }; return builder.nodeNS(NS_MESSAGES, 'UpdateItem', param, function(builder) { if (opts.savedItemFolderId) { EWSBuilder.$savedItemFolderId(builder, opts.savedItemFolderId); } return EWSBuilder.$itemChanges(builder, opts.itemChanges); }); }); }; EWSItemOperations.prototype.updateItem = function(opts) { return this.doSoapRequest(this.buildUpdateItem(opts), 'EWSItemsResponse'); }; return EWSItemOperations; })(Mixin);