- Separate Sync Status and Sync History into tabs with icons - Fix pagination in sync history by adding offset parameter - Update getSyncHistory to support offset for proper pagination - Update API endpoint to pass offset parameter - Previous/Next buttons now work correctly to navigate pages This improves UX by organizing the sync page into logical sections and enables users to browse through historical sync records.
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
/**
|
|
* Sync History API Endpoint
|
|
* GET /api/sync/history - Get sync history records
|
|
*/
|
|
|
|
import { NextRequest, NextResponse } from 'next/server';
|
|
import { AutotaskClient } from '@/lib/services/autotask-client';
|
|
import { createSyncService } from '@/lib/services/sync-service';
|
|
import { EntityType } from '@/lib/types/sync';
|
|
|
|
export async function GET(request: NextRequest) {
|
|
try {
|
|
const searchParams = request.nextUrl.searchParams;
|
|
const limit = parseInt(searchParams.get('limit') || '50');
|
|
const offset = parseInt(searchParams.get('offset') || '0');
|
|
const entityType = searchParams.get('entityType') as EntityType | null;
|
|
|
|
// Initialize Autotask client (needed for service instantiation)
|
|
const autotaskClient = new AutotaskClient({
|
|
apiUrl: process.env.AUTOTASK_API_URL || '',
|
|
username: process.env.AUTOTASK_USERNAME || '',
|
|
password: process.env.AUTOTASK_SECRET || '',
|
|
apiIntegrationCode: process.env.AUTOTASK_API_INTEGRATION_CODE || '',
|
|
});
|
|
|
|
// Create sync service
|
|
const syncService = createSyncService(autotaskClient);
|
|
|
|
// Get sync history
|
|
const history = await syncService.getSyncHistory(
|
|
limit,
|
|
entityType || undefined,
|
|
offset
|
|
);
|
|
|
|
return NextResponse.json({
|
|
history,
|
|
count: history.length,
|
|
});
|
|
} catch (error) {
|
|
console.error('Failed to fetch sync history:', error);
|
|
return NextResponse.json(
|
|
{ error: 'Failed to fetch sync history' },
|
|
{ status: 500 }
|
|
);
|
|
}
|
|
}
|