viewpoint
Version:
the exchange email API for nodejs module
100 lines (83 loc) • 2.57 kB
JavaScript
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;
})();