@jaricardodev/ews-javascript-api
Version:
EWS Managed api in JavaScript
59 lines (56 loc) • 3.08 kB
text/typescript
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 {
}
}