import { NextRequest, NextResponse } from 'next/server'; | |
import axios from 'axios'; | |
/** | |
* Handles the POST request to start an agent. | |
* | |
* @param request - The NextRequest object representing the incoming request. | |
* @returns A NextResponse object representing the response to be sent back to the client. | |
*/ | |
export async function POST(request: NextRequest) { | |
try { | |
const { AGENT_SERVER_URL } = process.env; | |
// Check if environment variables are available | |
if (!AGENT_SERVER_URL) { | |
throw "Environment variables are not available"; | |
} | |
const body = await request.json(); | |
const { | |
request_id, | |
channel_name, | |
user_uid, | |
graph_name, | |
language, | |
voice_type, | |
properties | |
} = body; | |
// Send a POST request to start the agent | |
const response = await axios.post(`${AGENT_SERVER_URL}/start`, { | |
request_id, | |
channel_name, | |
user_uid, | |
graph_name, | |
// Get the graph properties based on the graph name, language, and voice type | |
properties: properties, | |
}); | |
const responseData = response.data; | |
return NextResponse.json(responseData, { status: response.status }); | |
} catch (error) { | |
if (error instanceof Response) { | |
const errorData = await error.json(); | |
return NextResponse.json(errorData, { status: error.status }); | |
} else { | |
return NextResponse.json({ code: "1", data: null, msg: "Internal Server Error" }, { status: 500 }); | |
} | |
} | |
} |