1import { NextRequest, NextResponse } from 'next/server';
2import { fieldpineServerApi } from '@/lib/server/fieldpineApi';
3import { getStoredAuth } from '@/lib/server/auth';
6 * Loyalty Campaigns Endpoint
7 * Uses Fieldpine's elink/BUCK API for loyalty management
9export async function GET(request: NextRequest) {
11 // Verify authentication
12 const authData = await getStoredAuth();
13 if (!authData || !authData.authenticated) {
14 return NextResponse.json(
15 { success: false, error: 'Authentication required' },
20 // Call BUCK API for loyalty campaigns
23 "3": "retailmax.elink.loyalty.list"
26 const response = await fieldpineServerApi.buckApiCall(buckParams, authData.apiKey);
28 // Extract campaigns from BUCK response
29 if (response?.DATS && Array.isArray(response.DATS)) {
30 return NextResponse.json({
36 return NextResponse.json({
44 console.error('Loyalty campaigns error:', error);
45 return NextResponse.json(
46 { success: false, error: 'Failed to fetch loyalty campaigns', source: 'elink' },
52 console.error('Loyalty API error:', error);
53 return NextResponse.json(
54 { success: false, error: 'Failed to fetch loyalty campaigns' },