API Docs for: 2.0.20133.2
Show:

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);
        }
    }
}