import type { ActionInfo, ApiActionInfo, Data, LookupActionInfo } from "../../types/basic"; import { post, callApi, upload } from "fastball-mobile-common"; import { host } from '../utils/url' export const buildRequestData = async (actionInfo: ActionInfo) => { let data: Data | Data[] | undefined = actionInfo.data if (actionInfo.loadData) { data = await actionInfo.loadData() } if (actionInfo.needArrayWrapper) { return [data]; } return data; } export const loadLookupAction = async (actionInfo: LookupActionInfo, data?: Data): Promise => { const requestBody: any = [data] return post(host, `/api/fastball/lookup/${actionInfo.lookupKey}`, requestBody, { noAuth: true }); } export const doApiAction = async (actionInfo: ApiActionInfo): Promise => { const { componentKey, actionKey } = actionInfo; const data = await buildRequestData(actionInfo); return callApi(host, `/api/fastball/component/${componentKey}/action/${actionKey}/json`, data); } export const doUpload = async (files: any[]): Promise => { return await upload(host, files); }