UNPKG

@jaricardodev/ews-javascript-api

Version:
156 lines (139 loc) 4.48 kB
import {EwsServiceXmlWriter} from "../EwsServiceXmlWriter"; import {EwsUtilities} from "../EwsUtilities"; import {ExchangeService} from "../ExchangeService"; import {ExchangeVersion} from "../../Enumerations/ExchangeVersion"; import {FolderId} from "../../ComplexProperties/FolderId"; import {PropertySet} from "../PropertySet"; import {ServiceErrorHandling} from "../../Enumerations/ServiceErrorHandling"; import {ServiceObjectType} from "../../Enumerations/ServiceObjectType"; import {XmlElementNames} from "../XmlElementNames"; import {XmlNamespace} from "../../Enumerations/XmlNamespace"; import {MultiResponseServiceRequest} from "./MultiResponseServiceRequest"; import {SyncFolderHierarchyResponse} from "../Responses/SyncFolderHierarchyResponse"; /** * @internal Represents a SyncFolderHierarchy request. */ export class SyncFolderHierarchyRequest extends MultiResponseServiceRequest<SyncFolderHierarchyResponse> { private propertySet: PropertySet = null; private syncFolderId: FolderId = null; private syncState: string = null; /** * Gets or sets the property set. * * @value The property set */ get PropertySet(): PropertySet { return this.propertySet; } set PropertySet(value: PropertySet) { this.propertySet = value; } /** * Gets or sets the sync folder id. * * @value The sync folder id. */ get SyncFolderId(): FolderId { return this.syncFolderId; } set SyncFolderId(value: FolderId) { this.syncFolderId = value; } /** * Gets or sets the state of the sync. * * @value The state of the sync. */ get SyncState(): string { return this.syncState; } set SyncState(value: string) { this.syncState = value; } /** * @internal Initializes a new instance of the **SyncFolderItemsRequest** class. * * @param {ExchangeService} service The service. */ constructor(service: ExchangeService) { super(service, ServiceErrorHandling.ThrowOnError); } /** * @internal Creates the service response. * * @param {ExchangeService} service The service. * @param {number} responseIndex Index of the response. * @return {SyncFolderItemsResponse} Response object. */ CreateServiceResponse(service: ExchangeService, responseIndex: number): SyncFolderHierarchyResponse { return new SyncFolderHierarchyResponse(this.PropertySet); } /** * @internal Gets the expected response message count. * * @return {number} Number of items in response. */ GetExpectedResponseMessageCount(): number { return 1; } /** * @internal Gets the request version. * * @return {ExchangeVersion} Earliest Exchange version in which this request is supported. */ GetMinimumRequiredServerVersion(): ExchangeVersion { return ExchangeVersion.Exchange2007_SP1; } /** * @internal Gets the name of the response message XML element. * * @return {string} XML element name. */ GetResponseMessageXmlElementName(): string { return XmlElementNames.SyncFolderHierarchyResponseMessage; } /** * @internal Gets the name of the response XML element. * * @return {string} XML element name. */ GetResponseXmlElementName(): string { return XmlElementNames.SyncFolderHierarchyResponse; } /** * @internal Gets the name of the XML element. * * @return {string} XML element name. */ GetXmlElementName(): string { return XmlElementNames.SyncFolderHierarchy; } /** * @internal Validate request. */ Validate(): void { super.Validate(); EwsUtilities.ValidateParam(this.PropertySet, "PropertySet"); if (this.SyncFolderId != null) { this.SyncFolderId.Validate(this.Service.RequestedServerVersion); } this.PropertySet.ValidateForRequest(this, false /*summaryPropertiesOnly*/); } /** * @internal Writes the elements to XML writer. * * @param {EwsServiceXmlWriter} writer The writer. */ WriteElementsToXml(writer: EwsServiceXmlWriter): void { this.PropertySet.WriteToXml(writer, ServiceObjectType.Folder); if (this.SyncFolderId != null) { writer.WriteStartElement(XmlNamespace.Messages, XmlElementNames.SyncFolderId); this.SyncFolderId.WriteToXml(writer); writer.WriteEndElement(); } writer.WriteElementValue( XmlNamespace.Messages, XmlElementNames.SyncState, this.SyncState); } }