2 * FD1 Customers API Route
4 * GET /api/v1/fd1/customers - List customers using FD1 protocol
7 * - search: Search term for customer name/email/phone
8 * - limit: Number of results (default 100)
9 * - offset: Pagination offset (default 0)
12import { NextRequest, NextResponse } from 'next/server';
13import { getRequestContext } from '@/lib/server/sessionUtils';
14import { createFD1Client } from '@/lib/client/fd1Client';
16export async function GET(request: NextRequest) {
18 const context = await getRequestContext(request);
20 if (!context?.session?.storeUrl) {
21 return NextResponse.json(
22 { success: false, error: 'Not authenticated' },
27 // Parse query parameters
28 const searchParams = request.nextUrl.searchParams;
29 const search = searchParams.get('search');
30 const limit = parseInt(searchParams.get('limit') || '100', 10);
31 const offset = parseInt(searchParams.get('offset') || '0', 10);
33 // Build query filters
34 const filters: Record<string, any> = {};
35 if (search) filters.search = search;
38 const fd1Client = createFD1Client({
39 baseUrl: context.session.storeUrl!,
40 apiKey: context.session.apiKey,
45 const customers = await fd1Client.listCustomers(
46 Object.keys(filters).length > 0 ? filters : undefined,
52 return NextResponse.json({
55 count: customers.length,
61 console.error('FD1 customers API error:', error);
62 return NextResponse.json(
65 error: error instanceof Error ? error.message : 'Failed to fetch customers',