1import { NextRequest, NextResponse } from 'next/server';
2import { fieldpineServerApi } from '@/lib/server/fieldpineApi';
3import { getStoredAuth } from '@/lib/server/auth';
5interface PrinterCartridge {
11// GET: Retrieve relationships from Fieldpine backend (disabled due to timeout issues)
12export async function GET(request: NextRequest) {
14 console.log('[Printers-Cartridges API] Feature disabled due to performance issues');
17 const authData = await getStoredAuth();
18 if (!authData || !authData.authenticated) {
19 return NextResponse.json(
20 { error: 'Authentication required' },
25 // Return empty array - backend queries time out
26 console.log('[Printers-Cartridges API] Returning empty array (backend timeout issue)');
27 return NextResponse.json({
31 } catch (error: any) {
32 console.log('[Printers-Cartridges API] Error:', error.message);
33 return NextResponse.json({
40// POST: Save relationships to Fieldpine backend
41export async function POST(request: NextRequest) {
43 console.log('[Printers-Cartridges API] Saving to Fieldpine backend...');
46 const authData = await getStoredAuth();
47 if (!authData || !authData.authenticated) {
48 return NextResponse.json(
49 { error: 'Authentication required' },
54 const body = await request.json();
55 const { relationships } = body;
57 if (!Array.isArray(relationships)) {
58 return NextResponse.json(
59 { success: false, error: 'Invalid relationships data' },
64 // For now, we'll use a simple approach:
65 // 1. Delete all existing relationships
66 // 2. Insert the new ones via BUCK
69 // Delete all existing records using BUCK
70 await fieldpineServerApi.apiCall('/GNAP/j/buck', {
72 params: { '3': 'retailmax.elink.printercartridge' },
73 cookie: authData.apiKey,
77 // Ignore delete errors - table may be empty
78 console.log('[Printers-Cartridges API] Delete completed or table was empty');
81 // Insert new relationships as rows
82 const rows: any[] = [];
83 for (const rel of relationships) {
84 for (const cartridgeId of rel.cartridges) {
85 // BUCK DATS format: array of values [printerid, cartridgeid]
86 rows.push([rel.printerId, cartridgeId]);
90 if (rows.length > 0) {
92 // Insert all rows in one BUCK call
93 await fieldpineServerApi.apiCall('/GNAP/j/buck', {
95 params: { '3': 'retailmax.elink.printercartridge' },
97 cookie: authData.apiKey,
101 console.log(`[Printers-Cartridges API] Saved ${rows.length} relationships to backend`);
103 console.error('[Printers-Cartridges API] Error saving relationships:', err);
108 return NextResponse.json({
110 message: 'Relationships saved to backend successfully'
112 } catch (error: any) {
113 console.error('[Printers-Cartridges API] Error saving:', error);
114 return NextResponse.json(
115 { success: false, error: error.message || 'Failed to save relationships' },