- Delete empty placeholder files: utils/dbHelpers.js, utils/logger.js, scripts/seedSets.js - Merge newVersionController into importController (importFullDatabase belongs with import logic) - Delete newVersionController.js - Update importRoutes.js to import from importController
This commit is contained in:
@@ -1,9 +1,10 @@
|
|||||||
const { upsertCard } = require('../models/cardModel');
|
const { upsertCard } = require('../models/cardModel');
|
||||||
const {upsertRarity,getRarityId} = require('../models/rarityModel');
|
const { upsertRarity } = require('../models/rarityModel');
|
||||||
const { upsertSet } = require('../models/setModel');
|
const { upsertSet } = require('../models/setModel');
|
||||||
const { insertCardSetRarity } = require('../models/cardSetRarityModel');
|
const { insertCardSetRarity } = require('../models/cardSetRarityModel');
|
||||||
const { insertCardImage } = require('../models/cardImageModel');
|
const { insertCardImage } = require('../models/cardImageModel');
|
||||||
const { fetchAllCards, fetchAllSets } = require('../services/ygoproService');
|
const { getLocalDBVersion, setLocalDBVersion } = require('../models/dbVersionModel');
|
||||||
|
const { fetchAllCards, fetchAllSets, fetchDatabaseVersion } = require('../services/ygoproService');
|
||||||
const db = require('../config/db');
|
const db = require('../config/db');
|
||||||
|
|
||||||
const BATCH_SIZE = 50;
|
const BATCH_SIZE = 50;
|
||||||
@@ -161,4 +162,31 @@ async function importCards(req, res) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
module.exports = { importCards, importCardsInternal, importSets, importSetsInternal };
|
async function importFullDatabase(req, res) {
|
||||||
|
const startTime = Date.now();
|
||||||
|
try {
|
||||||
|
const remoteVersion = await fetchDatabaseVersion();
|
||||||
|
const localVersion = await getLocalDBVersion();
|
||||||
|
|
||||||
|
if (localVersion && localVersion.database_version === remoteVersion.database_version) {
|
||||||
|
return res.json({ message: 'Database is already up to date.', version: remoteVersion.database_version });
|
||||||
|
}
|
||||||
|
|
||||||
|
const setsStats = await importSetsInternal();
|
||||||
|
const cardsStats = await importCardsInternal();
|
||||||
|
await setLocalDBVersion(remoteVersion.database_version, remoteVersion.last_update);
|
||||||
|
|
||||||
|
res.json({
|
||||||
|
message: 'Database import completed successfully.',
|
||||||
|
version: remoteVersion.database_version,
|
||||||
|
sets: setsStats,
|
||||||
|
cards: cardsStats,
|
||||||
|
duration_seconds: parseFloat(((Date.now() - startTime) / 1000).toFixed(2)),
|
||||||
|
});
|
||||||
|
} catch (err) {
|
||||||
|
console.error('Error in full database import:', err);
|
||||||
|
res.status(500).json({ error: 'Failed to import database' });
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = { importCards, importCardsInternal, importSets, importSetsInternal, importFullDatabase };
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
const { fetchDatabaseVersion } = require('../services/ygoproService');
|
|
||||||
const { getLocalDBVersion, setLocalDBVersion } = require('../models/dbVersionModel');
|
|
||||||
const { importSetsInternal } = require('./importController');
|
|
||||||
const { importCardsInternal } = require('./importController');
|
|
||||||
|
|
||||||
async function importFullDatabase(req, res) {
|
|
||||||
const startTime = Date.now();
|
|
||||||
|
|
||||||
try {
|
|
||||||
const remoteVersion = await fetchDatabaseVersion();
|
|
||||||
const localVersion = await getLocalDBVersion();
|
|
||||||
|
|
||||||
if (localVersion && localVersion.database_version === remoteVersion.database_version) {
|
|
||||||
return res.json({
|
|
||||||
message: 'Database is already up to date.',
|
|
||||||
version: remoteVersion.database_version
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const setsStats = await importSetsInternal();
|
|
||||||
|
|
||||||
const cardsStats = await importCardsInternal();
|
|
||||||
|
|
||||||
await setLocalDBVersion(remoteVersion.database_version, remoteVersion.last_update);
|
|
||||||
|
|
||||||
const totalDuration = ((Date.now() - startTime) / 1000).toFixed(2);
|
|
||||||
|
|
||||||
res.json({
|
|
||||||
message: 'Database import completed successfully.',
|
|
||||||
version: remoteVersion.database_version,
|
|
||||||
sets: setsStats,
|
|
||||||
cards: cardsStats,
|
|
||||||
duration_seconds: parseFloat(totalDuration)
|
|
||||||
});
|
|
||||||
|
|
||||||
} catch (err) {
|
|
||||||
console.error('Error in full database import:', err);
|
|
||||||
res.status(500).json({ error: 'Failed to import database' });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = { importFullDatabase };
|
|
||||||
@@ -1,7 +1,6 @@
|
|||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
const { importSets, importCards} = require('../controllers/importController');
|
const { importSets, importCards, importFullDatabase } = require('../controllers/importController');
|
||||||
const { importFullDatabase } = require('../controllers/newVersionController');
|
|
||||||
|
|
||||||
router.post('/sets', importSets);
|
router.post('/sets', importSets);
|
||||||
router.post('/cards', importCards);
|
router.post('/cards', importCards);
|
||||||
|
|||||||
Reference in New Issue
Block a user