import { fetchFacebookItems } from "@marketplace-scrapers/core"; /** * GET /api/facebook?q={query}&location={location}&cookies={cookies} * Search Facebook Marketplace for listings */ export async function facebookRoute(req: Request): Promise { const reqUrl = new URL(req.url); const SEARCH_QUERY = req.headers.get("query") || reqUrl.searchParams.get("q") || null; if (!SEARCH_QUERY) return Response.json( { message: "Request didn't have 'query' header or 'q' search parameter!", }, { status: 400 }, ); const LOCATION = reqUrl.searchParams.get("location") || "toronto"; const COOKIES_SOURCE = reqUrl.searchParams.get("cookies") || undefined; try { const items = await fetchFacebookItems(SEARCH_QUERY, 5, LOCATION, 25, COOKIES_SOURCE); if (!items || items.length === 0) return Response.json( { message: "Search didn't return any results!" }, { status: 404 }, ); return Response.json(items, { status: 200 }); } catch (error) { console.error("Facebook scraping error:", error); const errorMessage = error instanceof Error ? error.message : "Unknown error occurred"; return Response.json( { message: errorMessage }, { status: 400 }, ); } }