From d619fa5d7744d32d252bfcf940ee3c460609cf4d Mon Sep 17 00:00:00 2001 From: Dmytro Stanchiev Date: Fri, 23 Jan 2026 09:53:51 -0500 Subject: [PATCH] feat(api/facebook): add maxItems parameter support --- packages/api-server/src/routes/facebook.ts | 64 ++++++++++++---------- 1 file changed, 35 insertions(+), 29 deletions(-) diff --git a/packages/api-server/src/routes/facebook.ts b/packages/api-server/src/routes/facebook.ts index fe05a52..8dc21f0 100644 --- a/packages/api-server/src/routes/facebook.ts +++ b/packages/api-server/src/routes/facebook.ts @@ -5,36 +5,42 @@ import { fetchFacebookItems } from "@marketplace-scrapers/core"; * Search Facebook Marketplace for listings */ export async function facebookRoute(req: Request): Promise { - const reqUrl = new URL(req.url); + 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 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; + const LOCATION = reqUrl.searchParams.get("location") || "toronto"; + const COOKIES_SOURCE = reqUrl.searchParams.get("cookies") || undefined; + const maxItemsParam = reqUrl.searchParams.get("maxItems"); + const maxItems = maxItemsParam ? parseInt(maxItemsParam, 10) : 25; - 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 }, - ); - } + try { + const items = await fetchFacebookItems( + SEARCH_QUERY, + 1, + LOCATION, + maxItems, + COOKIES_SOURCE, + undefined, + ); + 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 }); + } }