UNPKG

@jaricardodev/ews-javascript-api

Version:
89 lines (80 loc) 2.92 kB
import {EwsServiceXmlWriter} from "../Core/EwsServiceXmlWriter"; import {ExchangeService} from "../Core/ExchangeService"; import {StringHelper} from '../ExtensionMethods'; import {XmlAttributeNames} from "../Core/XmlAttributeNames"; import {XmlElementNames} from "../Core/XmlElementNames"; import {ComplexProperty} from "./ComplexProperty"; /** * Represents the MIME content of an item. */ export abstract class MimeContentBase extends ComplexProperty { /** * characterSet returned */ private characterSet: string; /** * content received */ private content: string;//byte[] /** * to set XMLElementName when reading XML JsObject value. */ protected xmlElementName: string = XmlElementNames.MimeContent; /** * Gets or sets the character set of the content. */ get CharacterSet(): string { return this.characterSet; } set CharacterSet(value: string) { this.SetFieldValue<string>({ getValue: () => this.characterSet, setValue: (updateValue) => { this.characterSet = updateValue } }, value); } /** * Gets or sets the content. - ews-javascript-api this is base64 value without encoding applied. */ get Content(): string { return this.content; } set Content(value: string) { this.SetFieldValue<string>({ getValue: () => this.content, setValue: (updateValue) => { this.content = updateValue } }, value); } /** * @internal Loads service object from XML. * * @param {any} jsObject Json Object converted from XML. * @param {ExchangeService} service The service. */ LoadFromXmlJsObject(jsObject: any/*JsonObject*/, service: ExchangeService): void { for (let key in jsObject) { switch (key) { case XmlAttributeNames.CharacterSet: this.characterSet = jsObject[key]; break; case this.xmlElementName: //ref: text value in xml2jsobject this.content = jsObject[key];; break; default: break; } } } /** * @internal Writes attributes to XML. * * @param {EwsServiceXmlWriter} writer The writer. */ WriteAttributesToXml(writer: EwsServiceXmlWriter): void { writer.WriteAttributeValue(XmlAttributeNames.CharacterSet, this.CharacterSet); } /** * @internal Writes elements to XML. * * @param {EwsServiceXmlWriter} writer The writer. */ WriteElementsToXml(writer: EwsServiceXmlWriter): void { if (!StringHelper.IsNullOrEmpty(this.Content)) { writer.WriteValue(this.Content, this.xmlElementName); //writer.WriteBase64ElementValue(this.Content); } } }