SPB Git

Repository Public

route.ts 1.5 KB 43 lines typescript

1// Auteur : Simon-Pierre Boucher — contact@spboucher.ai2// Registre des ventes récentes en JSON (mêmes filtres que /ventes) :3//   GET /api/ventes?q=Québec&type=condo&min=200000&max=600000&periode=90&page=1&limit=504import { NextRequest, NextResponse } from "next/server";5import { parseVenteFilters, ventesOverview, ventesRecentes, vsRolePct } from "@/lib/ventes";67export function GET(req: NextRequest) {8  const f = parseVenteFilters(req.nextUrl.searchParams);9  try {10    const page = ventesRecentes(f);11    const ov = ventesOverview();12    return NextResponse.json(13      {14        source: "Transactions publiées — flux Journal de Québec / Journal de Montréal (api.qub.ca)",15        updatedTo: ov.maxDate,16        total: page.total,17        page: page.page,18        pages: page.pages,19        limit: page.limit,20        since: page.since,21        filters: page.filters,22        rows: page.rows.map((r) => ({23          id: r.id,24          date: r.date,25          amount: r.amount,26          street: r.street,27          city: r.city,28          propertyType: r.property_type,29          yearBuilt: r.year_built,30          floorArea: r.floor_area,31          landArea: r.land_area,32          idProvinc: r.id_provinc,33          valeurRole: r.valeur_role,34          vsRolePct: vsRolePct(r.amount, r.valeur_role),35        })),36      },37      { headers: { "Cache-Control": "public, max-age=300, s-maxage=600" } }38    );39  } catch (e) {40    return NextResponse.json({ error: (e as Error).message }, { status: 500 });41  }42}43
Files main
Menu

Theme