zcatalyst-integ-cliq
Version:
Node.js SDK for integrating Zoho Catalyst with Zoho Cliq
44 lines (43 loc) • 2.28 kB
TypeScript
import { Access, Chat, Environment, Location, FormRequestParam, FormTarget, MessageObject, User, ButtonObject, WidgetTarget } from '../common.js';
import HandlerResponse from '../response-objects/handler-response.js';
import FormChangeResponse from '../response-objects/form-change-response.js';
import FormDynamicFieldResponse from '../response-objects/form-dynamic-field-response.js';
import WidgetResponse from '../response-objects/widget-response.js';
import Form from '../response-objects/form.js';
interface FunctionRequest {
name: string;
user: User;
chat: Chat;
access: Access;
environment: Environment;
message: MessageObject;
}
interface ButtonFunctionRequest extends FunctionRequest {
arguments: Record<string, unknown>;
target: ButtonObject;
location: Location;
event: string;
}
interface FormFunctionRequest extends FunctionRequest {
form: FormRequestParam;
target: FormTarget;
params?: Record<string, string>;
}
interface WidgetFunctionRequest extends Omit<FunctionRequest, 'chat' | 'message'> {
target: WidgetTarget;
arguments: Record<string, unknown>;
}
export default class FunctionHandler {
buttonFunctionHandler(handler: (req: ButtonFunctionRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<unknown>): void;
formSubmitHandler(handler: (req: FormFunctionRequest, res: HandlerResponse, ...args: Array<unknown>) => Promise<unknown>): void;
formChangeHandler(handler: (req: FormFunctionRequest, res: FormChangeResponse, ...args: Array<unknown>) => Promise<typeof res | undefined>): void;
formDynamicFieldHandler(handler: (req: FormFunctionRequest, res: FormDynamicFieldResponse, ...args: Array<unknown>) => Promise<typeof res | undefined>): void;
formViewHandler(handler: (req: FormFunctionRequest, res: Form, ...args: Array<unknown>) => Promise<typeof res | undefined>): void;
widgetButtonHandler(handler: (req: WidgetFunctionRequest, res: WidgetResponse, ...args: Array<unknown>) => Promise<typeof res | undefined>): void;
newHandlerResponse(): HandlerResponse;
newFormChangeResponse(): FormChangeResponse;
newFormDynamicFieldResponse(): FormDynamicFieldResponse;
newFormViewResponse(): Form;
newWidgetResponse(): WidgetResponse;
}
export {};