import { NextRequest, NextResponse } from "next/server"; import { getApiCallState, queueApiRequest, } from "../../../services/tuziApiQueueService"; // Modified POST method that returns a token instead of waiting for execution result export async function POST(request: NextRequest) { try { const body = await request.text(); const HEADER_X_TARGET = "X-Api-Target"; const apiTargetUrl = request.headers.get(HEADER_X_TARGET); if (!apiTargetUrl) { return NextResponse.json( { error: `Header ${HEADER_X_TARGET} is required` }, { status: 400 }, ); } const token = queueApiRequest({ apiTarget: apiTargetUrl, postBody: body, }); return NextResponse.json({ token }); } catch (error: any) { return NextResponse.json({ error: error.message }, { status: 500 }); } } // API to query execution result by token from path parameter export async function GET(request: NextRequest) { try { // Get token from the search params in the URL const { searchParams } = new URL(request.url); const token = searchParams.get("token"); if (!token) { return NextResponse.json( { error: "Token is required as a query parameter" }, { status: 400 }, ); } const execution = getApiCallState(token); return NextResponse.json(execution); } catch (error: any) { return NextResponse.json({ error: error.message }, { status: 500 }); } }