UNPKG

@jaricardodev/ews-javascript-api

Version:
59 lines (56 loc) 3.08 kB
import {CalendarEvent} from "../../ComplexProperties/Availability/CalendarEvent"; import {WorkingHours} from "../../ComplexProperties/Availability/WorkingHours"; import {FreeBusyViewType} from "../../Enumerations/FreeBusyViewType"; import {LegacyFreeBusyStatus} from "../../Enumerations/LegacyFreeBusyStatus"; import {XmlElementNames} from "../XmlElementNames"; import {ExchangeService} from "../ExchangeService"; import {ServiceResponse} from "./ServiceResponse"; export class AttendeeAvailability extends ServiceResponse { get CalendarEvents(): CalendarEvent[] { return this.calendarEvents; } get ViewType(): FreeBusyViewType { return this.viewType; } get MergedFreeBusyStatus(): LegacyFreeBusyStatus[] { return this.mergedFreeBusyStatus; } get WorkingHours(): WorkingHours { return this.workingHours; } private calendarEvents: CalendarEvent[] = []; private mergedFreeBusyStatus: LegacyFreeBusyStatus[] = []; private viewType: FreeBusyViewType = FreeBusyViewType.None; private workingHours: WorkingHours = null; LoadFreeBusyViewFromXmlJsObject(jsObject: any, viewType: FreeBusyViewType, service: ExchangeService): void { var viewTypeString = jsObject[XmlElementNames.FreeBusyViewType]; this.viewType = <FreeBusyViewType><any>FreeBusyViewType[viewTypeString]; for (var key in jsObject) { switch (key) { case XmlElementNames.MergedFreeBusy: var mergedFreeBusy: string = jsObject[key]; for (var status of mergedFreeBusy.split('')) { this.mergedFreeBusyStatus.push(<LegacyFreeBusyStatus>Number(status)); } break; case XmlElementNames.CalendarEventArray: var calendarEventArray = jsObject[key]; if (!calendarEventArray) break; var calendarEvents:any[] = calendarEventArray[XmlElementNames.CalendarEvent]; if (!Array.isArray(calendarEvents)) { calendarEvents = [calendarEvents] } for (var calendarEventObj of calendarEvents) { var calendarEvent: CalendarEvent = new CalendarEvent(); calendarEvent.LoadFromXmlJsObject(calendarEventObj, service); this.calendarEvents.push(calendarEvent); } break; case XmlElementNames.WorkingHours: this.workingHours = new WorkingHours(); this.workingHours.LoadFromXmlJsObject(jsObject[key], service); break; } } } /** * @internal Reads response elements from Xml JsObject. * * @param {any} jsObject The response object. * @param {ExchangeService} service The service. */ ReadElementsFromXmlJsObject(jsObject: any, service: ExchangeService): void { } }