/** * Facade over `client.request` (`aaf_sdk.js`): `api(requestName, requestParams, pathParam)`. * * ECC source: `com.drishti.ameyo.application.app.impl.RequestService` * (service name **`request`**, whitelist in `RequestApiEnum`). * * Use this for whitelisted Ameyo APIs (`getTicket`, `getAllTickets`, `updateTicket`, * `dialPhone`, `dialCustomer`, `addCustomer`, `addNote`, `getAllMessages`, * `markAppointment`, `executeRoutingTest`, …). Prefer the typed `dialPhone` / * `dialCustomer` helpers in `gwtContextData.ts` for those specific operations. */ /** Subset of well-known whitelisted entries in `RequestApiEnum`. */ export const GwtRequestApi = { getTicket: "getTicket", getKycTicket: "getKycTicket", updateTicket: "updateTicket", getAllTickets: "getAllTickets", dialPhone: "dialPhone", dialCustomer: "dialCustomer", dialCustomerOnAltPhone: "dialCustomerOnAltPhone", addCustomer: "addCustomer", newCustomerForm: "newCustomerForm", openCustomerDetail: "openCustomerDetail", getCustomerForSearchable: "getCustomerForSearchable", addOrUpdateMessage: "addOrUpdateMessage", assignUserToTicket: "assignUserToTicket", addNote: "addNote", updateNote: "updateNote", deleteNote: "deleteNote", getAllMessages: "getAllMessages", getTicketAttachment: "getTicketAttachment", deleteAttachmentFromTicket: "deleteAttachmentFromTicket", getAllCustomFieldCategoryForCampaign: "getAllCustomFieldCategoryForCampaign", getChannelSupportedReactions: "getChannelSupportedReactions", getMessageSelectedReaction: "getMessageSelectedReaction", setMessageSelectedReaction: "setMessageSelectedReaction", getAppointmentForResource: "getAppointmentForResource", markAppointment: "markAppointment", getAvailableAppointmentSlots: "getAvailableAppointmentSlots", scheduleAppointment: "scheduleAppointment", evaluateRoutingRule: "evaluateRoutingRule", generateAuthorizedURL: "generateAuthorizedURL", updateMetadata: "updateMetadata", getCCCallContexts: "getCCCallContexts", executeRoutingTest: "executeRoutingTest", configuredContactCardForProcess: "configuredContactCardForProcess", fetchRoutingTest: "fetchRoutingTest", deleteRoutingTest: "deleteRoutingTest", saveRoutingTest: "saveRoutingTest", liveCustomerData: "liveCustomerData", dispose: "dispose", hangup: "hangup" } as const; export type GwtRequestApiName = (typeof GwtRequestApi)[keyof typeof GwtRequestApi]; export interface AafRequestApi { api: ( requestName: GwtRequestApiName | (string & {}), requestParams?: unknown, pathParam?: unknown ) => Promise; } export interface HasRequest { request: AafRequestApi; } export function callRequestApi( client: HasRequest, requestName: GwtRequestApiName | (string & {}), requestParams?: unknown, pathParam?: unknown ): Promise { return client.request.api(requestName, requestParams, pathParam); }