diff --git a/src/controllers/importController.js b/src/controllers/importController.js index 72c749b..ec8c2db 100644 --- a/src/controllers/importController.js +++ b/src/controllers/importController.js @@ -1,14 +1,20 @@ const { fetchAllSets } = require('../services/ygoproService'); const { upsertSet } = require('../models/setModel'); +const BATCH_SIZE = 10; + async function importSets(req, res) { try { const sets = await fetchAllSets(); let added = 0; - for (const set of sets) { - await upsertSet(set); - added++; + // Parallelized batch insert + for (let i = 0; i < sets.length; i += BATCH_SIZE) { + const batch = sets.slice(i, i + BATCH_SIZE); + await Promise.all(batch.map(async (set) => { + await upsertSet(set); + added++; + })); } res.json({ @@ -16,7 +22,7 @@ async function importSets(req, res) { total: sets.length }); } catch (err) { - console.error(err); + console.error('Error importing sets:', err); res.status(500).json({ error: 'Failed to import sets' }); } } diff --git a/src/models/cardModel.js b/src/models/cardModel.js index 4f323ce..e69de29 100644 --- a/src/models/cardModel.js +++ b/src/models/cardModel.js @@ -1,17 +0,0 @@ -const db = require('../config/db'); - -async function upsertSet(set) { - const { set_name, set_code, num_of_cards, tcg_date } = set; - - const sql = ` - INSERT INTO sets (set_name, set_code, num_of_cards, tcg_date) - VALUES (?, ?, ?, ?) - ON DUPLICATE KEY UPDATE - set_name = VALUES(set_name), - num_of_cards = VALUES(num_of_cards), - tcg_date = VALUES(tcg_date) - `; - await db.execute(sql, [set_name, set_code, num_of_cards, tcg_date]); -} - -module.exports = { upsertSet }; \ No newline at end of file