import { NextRequest, NextResponse } from "next/server"; import { sql } from "@/lib/db"; import { getPipelineQueue, JOB_OPTIONS } from "@/lib/queue"; export const runtime = "nodejs"; export async function POST( _req: NextRequest, { params }: { params: Promise<{ slug: string }> }, ) { const { slug } = await params; const rows = await Promise.resolve(sql<{ geofabrik_url: string }[]>` SELECT geofabrik_url FROM cities WHERE slug = ${slug} `); if (rows.length === 0) { return NextResponse.json({ error: "City not found" }, { status: 404 }); } const { geofabrik_url: geofabrikUrl } = rows[0]; // Reset status await Promise.resolve(sql` UPDATE cities SET status = 'pending', error_message = NULL WHERE slug = ${slug} `); const queue = getPipelineQueue(); const job = await queue.add( "refresh-city", { type: "refresh-city", citySlug: slug, geofabrikUrl }, JOB_OPTIONS["refresh-city"], ); return NextResponse.json({ citySlug: slug, jobId: job.id }, { status: 202 }); }