import fs from 'fs';
import fetch from 'node-fetch';
import { fileURLToPath } from 'url';
import { dirname, join } from 'path';
const __filename = fileURLToPath(import.meta.url);
const __dirname = dirname(__filename);
const GRAPHQL_URL = process.env.GRAPHQL_URL || 'http://localhost:4000/graphql';
async function loadSampleData() {
try {
console.log('π Loading sample data into ADL system...\n');
// Read sample data
const sampleDataPath = join(__dirname, '../sample-data.json');
const sampleData = JSON.parse(fs.readFileSync(sampleDataPath, 'utf-8'));
console.log(`Found ${sampleData.length} sample entries to load\n`);
let successCount = 0;
let errorCount = 0;
// Create each entry
for (const entry of sampleData) {
try {
const response = await fetch(GRAPHQL_URL, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
query: `
mutation CreateEntry($input: CreateADLEntryInput!) {
createADLEntry(input: $input) {
id
title
author
status
}
}
`,
variables: { input: entry }
})
});
const result = await response.json();
if (result.errors) {
console.error(`β Error creating entry "${entry.title}":`, result.errors[0].message);
errorCount++;
} else {
console.log(`β
Created: "${result.data.createADLEntry.title}" by ${result.data.createADLEntry.author} [${result.data.createADLEntry.status}]`);
successCount++;
}
} catch (error) {
console.error(`β Failed to create entry "${entry.title}":`, error.message);
errorCount++;
}
}
console.log(`\nπ Summary:`);
console.log(` β
Successfully created: ${successCount}`);
console.log(` β Errors: ${errorCount}`);
console.log(`\nπ Sample data loading complete!`);
console.log(`\nπ View entries at: http://localhost:3000`);
} catch (error) {
console.error('β Fatal error:', error.message);
console.error('\nπ‘ Make sure the GraphQL server is running:');
console.error(' npm run start:graphql');
process.exit(1);
}
}
// Run the script
loadSampleData();