bottender
Version:
A framework for building conversational user interfaces.
64 lines • 2.3 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { JsonObject } from 'type-fest';
import Session from '../session/Session';
import { Connector } from '../bot/Connector';
import { RequestContext } from '../types';
import TwilioClient from './TwilioClient';
import WhatsappContext from './WhatsappContext';
import WhatsappEvent from './WhatsappEvent';
import { WhatsappRequestBody, WhatsappRequestContext } from './WhatsappTypes';
declare type ConnectorOptionsWithoutClient = {
accountSid: string;
authToken: string;
phoneNumber: string;
origin?: string;
};
declare type ConnectorOptionsWithClient = {
client: TwilioClient;
origin?: string;
};
export declare type WhatsappConnectorOptions = ConnectorOptionsWithoutClient | ConnectorOptionsWithClient;
export default class WhatsappConnector implements Connector<WhatsappRequestBody, TwilioClient> {
_client: TwilioClient;
constructor(options: WhatsappConnectorOptions);
get platform(): 'whatsapp';
get client(): TwilioClient;
getUniqueSessionKey(body: WhatsappRequestBody): string;
updateSession(session: Session, body: WhatsappRequestBody): Promise<void>;
mapRequestToEvents(body: WhatsappRequestBody): WhatsappEvent[];
createContext(params: {
event: WhatsappEvent;
session: Session | null;
initialState?: JsonObject | null;
requestContext?: RequestContext;
emitter?: EventEmitter | null;
}): WhatsappContext;
verifySignature({ body, url, headers, }: {
headers: WhatsappRequestContext['headers'];
url: string;
body: WhatsappRequestBody;
}): boolean;
preprocess({ url, headers, rawBody, body }: WhatsappRequestContext): {
shouldNext: boolean;
response?: undefined;
} | {
shouldNext: boolean;
response: {
status: number;
body: {
error: {
message: string;
request: {
rawBody: string;
headers: {
'x-twilio-signature': string | undefined;
};
};
};
};
};
};
}
export {};
//# sourceMappingURL=WhatsappConnector.d.ts.map