File: src\internal\api\modalities\callbackModality.ts
/// <reference path="linkModality.ts" />
/// <reference path="common.ts" />
/**
* @module API
* @submodule API Modalities
* @namespace api.modalities
*/
namespace internal.api.modalities {
/**
* @class CallbackModality
* @extends api.modalities.LinkModality
*/
export class CallbackModality extends LinkModality {
/**
* Link to hours of operations schedule
* @property {string} hoopsLink
*/
public readonly hoopsLink: string;
/**
* Get wait time in milliseconds
* @method getWaitTime
* @return { Promise | Number } A promise that resolves to the predicted wait time as a number of milliseconds
*/
public readonly getWaitTime: () => JQueryPromise<number>;
/**
* Get status of the chat
* @method getAvailability
* @return { Promise | string } A promise that resolves to a value in {{#crossLink "api.modalities.Availability"}}{{/crossLink}}
*/
public readonly getAvailability: () => JQueryPromise<string>;
constructor(responseModality: any) {
super(responseModality, Modality.CALLBACK);
if (!responseModality.HoopsLink ||
!responseModality.OpenNowLink ||
!responseModality.WaitTime) {
throw Error("Unable to create CallbackModality");
}
this.hoopsLink = responseModality.HoopsLink;
this.getWaitTime = getWaitTimeCallback(responseModality);
this.getAvailability = getAvailabilityCallback(responseModality);
}
}
}