import { applicationProviders } from "@/lib/application-providers";
import {
  applicationBody,
  applicationReply,
  applicationRoute,
} from "@/lib/application-http";
import {
  ApplicationError,
  ownedApplicationSchema,
} from "@/lib/application-record";
import { finalizeApplication } from "@/lib/application-service";
export const runtime = "nodejs";
export async function POST(request: Request) {
  return applicationRoute(async () => {
    const providers = applicationProviders();
    const parsed = ownedApplicationSchema.safeParse(
      await applicationBody(request, providers.origin),
    );
    if (!parsed.success)
      throw new ApplicationError(400, "Restore your application and retry.");
    await providers.limit(request);
    return applicationReply(
      await finalizeApplication(
        parsed.data.requestId,
        parsed.data.capability,
        providers,
      ),
    );
  });
}
