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 ActionCreatedResponse extends ApiResponse { actionId: string dynamicBindingMap: Record } export interface ActionUpdatedResponse extends ActionCreatedResponse { } 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