import Api, { HttpMethod } from "./Api"; import { ApiResponse } from "./ApiResponses"; import { APIRequest } from "./ApiRequests"; export interface CreateActionRequest extends APIRequest { resourceId: string; actionConfiguration: T; } export interface UpdateActionRequest extends CreateActionRequest { actionId: string; } export interface APIConfig { requestHeaders: Record; method: HttpMethod; path: string; APIName: string; body: JSON; queryParams: Record; } export interface QueryConfig { queryString: string; } export interface ActionCreateUpdateResponse extends ApiResponse { actionId: string; dynamicBindingMap: Record; } export interface ExecuteActionRequest extends APIRequest { actionId: string; dynamicBindingMap: Record; } export interface ExecuteActionResponse extends ApiResponse { actionId: string; data: any; } class ActionAPI extends Api { static url = "/actions"; static createAPI( createAPI: CreateActionRequest, ): Promise { return Api.post(ActionAPI.url, createAPI); } static updateAPI( updateAPI: UpdateActionRequest, ): Promise { return Api.post(ActionAPI.url, updateAPI); } static createQuery( createQuery: CreateActionRequest, ): Promise { return Api.post(ActionAPI.url, createQuery); } static updateQuery( updateQuery: UpdateActionRequest, ): Promise { return Api.post(ActionAPI.url, updateQuery); } static executeAction( executeAction: ExecuteActionRequest, ): Promise { return Api.post(ActionAPI.url, executeAction); } } export default ActionAPI;