// Test direct Alegra API call
// This tests the generated adapter works correctly
const ALEGRA_TOKEN = process.env.ALEGRA_TOKEN;
const ALEGRA_BASE_URL = process.env.ALEGRA_BASE_URL || 'https://api.alegra.com/api/v1';
if (!ALEGRA_TOKEN) {
console.error('Error: ALEGRA_TOKEN environment variable required');
console.log('Set it with: export ALEGRA_TOKEN="base64(email:token)"');
process.exit(1);
}
async function fetchAlegra(endpoint: string) {
const response = await fetch(`${ALEGRA_BASE_URL}${endpoint}`, {
headers: {
'Authorization': `Basic ${ALEGRA_TOKEN}`,
'Content-Type': 'application/json',
},
});
if (!response.ok) {
throw new Error(`Alegra API error: ${response.status} ${response.statusText}`);
}
return response.json();
}
export default async function() {
console.log('Testing Alegra API connection...\n');
try {
// Test getting company info
const company = await fetchAlegra('/company');
console.log('✅ Company:', company.name);
// Test getting invoices count
const invoices = await fetchAlegra('/invoices?limit=1&metadata=true');
console.log('✅ Total invoices:', invoices.metadata?.total || invoices.length);
// Test getting contacts count
const contacts = await fetchAlegra('/contacts?limit=1&metadata=true');
console.log('✅ Total contacts:', contacts.metadata?.total || contacts.length);
return {
status: 'ok',
company: company.name,
invoices: invoices.metadata?.total,
contacts: contacts.metadata?.total,
};
} catch (error) {
console.error('❌ Error:', error);
return { status: 'error', error: String(error) };
}
}