UNPKG

@jaricardodev/ews-javascript-api

Version:
59 lines (52 loc) 2.84 kB
import {ServiceResponse} from "./ServiceResponse"; import {FindFoldersResults} from "../../Search/FindFoldersResults"; import {PropertySet} from "../PropertySet"; import {ExchangeService} from "../ExchangeService"; import {Folder} from "../ServiceObjects/Folders/Folder"; import {Convert} from "../../ExtensionMethods" import {XmlElementNames} from "../XmlElementNames"; import {XmlAttributeNames} from "../XmlAttributeNames"; import {EwsServiceJsonReader} from "../EwsServiceJsonReader"; import {FolderInfo} from "../ServiceObjects/Folders/FolderInfo"; import {EwsLogging} from "../EwsLogging"; export class FindFolderResponse extends ServiceResponse { get Results(): FindFoldersResults { return this.results; } private results: FindFoldersResults = new FindFoldersResults(); private propertySet: PropertySet; constructor(propertySet: PropertySet) { super(); this.propertySet = propertySet; EwsLogging.Assert( this.propertySet != null, "FindFolderResponse.ctor", "PropertySet should not be null"); } CreateFolderInstance(service: ExchangeService, xmlElementName: string): Folder { var flinfo: FolderInfo = new FolderInfo(); return flinfo.CreateEwsObjectFromXmlElementName<Folder>(service, xmlElementName); } ReadElementsFromJson(responseObject: any, service: ExchangeService): any { throw new Error("FindFolderResponse.ts - ReadElementsFromJson : Not implemented."); } ReadElementsFromXmlJsObject(responseObject: any, service: ExchangeService): void { var rootFolder = responseObject[XmlElementNames.RootFolder]; this.results.TotalCount = Number(rootFolder[XmlAttributeNames.TotalItemsInView]); this.results.MoreAvailable = !Convert.toBool(rootFolder[XmlAttributeNames.IncludesLastItemInRange]); // Ignore IndexedPagingOffset attribute if moreItemsAvailable is false. var nextPageOffset: number = null; if (this.results.MoreAvailable) { if (rootFolder[XmlAttributeNames.IndexedPagingOffset]) { nextPageOffset = Number(rootFolder[XmlAttributeNames.IndexedPagingOffset]); } } if (rootFolder[XmlElementNames.Folders]) { var folders: Folder[] = EwsServiceJsonReader.ReadServiceObjectsCollectionFromJson<Folder>( rootFolder, service, XmlElementNames.Folders, this.CreateFolderInstance, true, /* clearPropertyBag */ this.propertySet, /* requestedPropertySet */ true); /* summaryPropertiesOnly */ folders.forEach((item, index) => { this.results.Folders.push(item) }); } } }