UNPKG

viewpoint

Version:
100 lines (83 loc) 2.57 kB
var Attachment, Item, TypeMixin, pascalCase; pascalCase = require('../ews-util').pascalCase; TypeMixin = require('./type-mixin'); Attachment = require('./attachment'); module.exports = Item = (function() { TypeMixin.includeInto(Item); function Item(node) { this.node = node; } Item.prototype.mimeContent = function() { var characterSet, content, element; element = this.getChildNode('mimeContent'); if (element) { characterSet = element.attrVal('CharacterSet'); content = new Buffer(element.text(), 'base64'); return { characterSet: characterSet, content: content }; } }; Item.prototype.body = function() { var bodyType, element; element = this.getChildNode('body'); if (element) { bodyType = element.attrVal('BodyType').toLowerCase(); return { bodyType: bodyType, content: element.text() }; } }; Item.prototype.attachments = function() { var attachNode, attachments, i, len, ref, results; attachments = this.getChildNode('attachments'); if (attachments) { ref = attachments.childNodes(); results = []; for (i = 0, len = ref.length; i < len; i++) { attachNode = ref[i]; results.push(new Attachment(attachNode)); } return results; } }; Item.prototype.size = function() { return this.getChildIntValue('size'); }; Item.prototype.categories = function() { var childNode, element, i, len, ref, results; element = this.getChildNode('Categories'); if (element) { ref = element.childNodes(); results = []; for (i = 0, len = ref.length; i < len; i++) { childNode = ref[i]; results.push(childNode.text()); } return results; } }; Item.prototype.internetMessageHeaders = function() { var element, headerNode, i, len, ref, results; element = this.getChildNode('InternetMessageHeaders'); if (element) { ref = element.childNodes(); results = []; for (i = 0, len = ref.length; i < len; i++) { headerNode = ref[i]; results.push({ name: headerNode.attrVal('HeaderName', { value: headerNode.text() }) }); } return results; } }; Item.addBoolTextMethods('isSubmitted', 'isDraft', 'isFromMe', 'isResend', 'isUnmodified'); Item.addTextMethods('itemClass', 'subject', 'sensitivity', 'dateTimeReceived', 'inReplyTo', 'importance'); Item.addAttrMethods('itemId', 'parentFolderId'); return Item; })();