feat: ebay 'buy it now' and 'canada only' filters support

This commit is contained in:
2025-12-17 14:38:52 -05:00
parent 083b862552
commit 497c7995a2
4 changed files with 40 additions and 6 deletions

View File

@@ -1,8 +1,8 @@
import { fetchEbayItems } from "@marketplace-scrapers/core";
/**
* GET /api/ebay?q={query}&minPrice={minPrice}&maxPrice={maxPrice}&strictMode={strictMode}&exclusions={exclusions}&keywords={keywords}
* Search eBay for listings
* GET /api/ebay?q={query}&minPrice={minPrice}&maxPrice={maxPrice}&strictMode={strictMode}&exclusions={exclusions}&keywords={keywords}&buyItNowOnly={buyItNowOnly}&canadaOnly={canadaOnly}
* Search eBay for listings (default: Buy It Now only, Canada only)
*/
export async function ebayRoute(req: Request): Promise<Response> {
const reqUrl = new URL(req.url);
@@ -26,6 +26,8 @@ export async function ebayRoute(req: Request): Promise<Response> {
? parseInt(reqUrl.searchParams.get("maxPrice")!)
: undefined;
const strictMode = reqUrl.searchParams.get("strictMode") === "true";
const buyItNowOnly = reqUrl.searchParams.get("buyItNowOnly") !== "false";
const canadaOnly = reqUrl.searchParams.get("canadaOnly") !== "false";
const exclusionsParam = reqUrl.searchParams.get("exclusions");
const exclusions = exclusionsParam ? exclusionsParam.split(",").map(s => s.trim()) : [];
const keywordsParam = reqUrl.searchParams.get("keywords");
@@ -38,6 +40,8 @@ export async function ebayRoute(req: Request): Promise<Response> {
strictMode,
exclusions,
keywords,
buyItNowOnly,
canadaOnly,
});
if (!items || items.length === 0)
return Response.json(