Spaces:
Running
Running
import { NextApiRequest, NextApiResponse } from 'next'; | |
import { odds, serp, sports, coin } from './embed'; | |
export const config = { | |
api: { | |
bodyParser: { | |
sizeLimit: '1mb', | |
}, | |
}, | |
}; | |
type FunctionHandler = any; | |
const handlers: FunctionHandler = { | |
'search': serp, | |
'sports_odds': odds, | |
'sports_results': sports, | |
'coinmarketcap': coin | |
}; | |
export default async function handler(req: NextApiRequest, res: NextApiResponse) { | |
const args = req.body.args as string; | |
const functionName = req.body.name as string; | |
const functionInput = JSON.parse(args); | |
const functionHandler = handlers[functionName]; | |
if (!functionHandler) { | |
console.error(`Function "${functionName}" is not supported.`); | |
return res.status(500).json({ error: `Function "${functionName}" is not supported.` }); | |
} | |
try { | |
const result = await functionHandler(functionInput); | |
return res.status(200).send(result); | |
} catch (error) { | |
console.error(error); | |
// @ts-ignore | |
return res.status(500).json({ error: error.message }); | |
} | |
} | |