76 lines
No EOL
2.8 KiB
JavaScript
76 lines
No EOL
2.8 KiB
JavaScript
const express = require('express');
|
|
const multer = require('multer')
|
|
const upload = multer()
|
|
|
|
const { getConnection, getGame, addGame } = require("../../../libs/mysql.js")
|
|
|
|
const router = express.Router();
|
|
|
|
router.post('/', upload.single('file'), async (req, res) => {
|
|
const file = req.file.buffer.toString().replace(/"/g, "");
|
|
const lines = file.split("\n");
|
|
const fields = lines[0].split(";");
|
|
|
|
const assoc = {
|
|
'ID': 'id',
|
|
'Titre': 'title',
|
|
'Sous-titre': 'subtitle',
|
|
'Édition': 'edition',
|
|
'Type': 'type',
|
|
'Joueur(s)': 'players',
|
|
'Durée': 'duration',
|
|
'Age(s)': 'ages',
|
|
'Langues': 'language',
|
|
'Univers': 'universe',
|
|
'Gamme(s)': 'ranges',
|
|
'Catégorie(s)': "categories",
|
|
'Thème(s)': 'themes',
|
|
'Mécanisme(s)': 'mecanisms',
|
|
'Éditeur(s)': 'editor',
|
|
'Auteur(s)': 'authors',
|
|
'Illustrateur(s)': 'illustrators'
|
|
}
|
|
|
|
const positions = {}
|
|
for (i = 0; i < fields.length; i++) {
|
|
if (assoc[fields[i]]) {
|
|
positions[assoc[fields[i]]] = i;
|
|
}
|
|
}
|
|
|
|
const games = []
|
|
for (i = 1; i < lines.length; i++) {
|
|
games.push(lines[i].split(";"))
|
|
}
|
|
|
|
const connection = await getConnection();
|
|
games.forEach(async game => {
|
|
const game_db = await getGame(connection, game[positions['id']]);
|
|
|
|
if (!game_db[0]) {
|
|
addGame(connection,
|
|
game[positions['id']],
|
|
game[positions['title']],
|
|
game[positions['subtitle']] ? game[positions['subtitle']] : "NULL",
|
|
game[positions['edition']] ? game[positions['edition']] : "NULL",
|
|
game[positions['type']] ? game[positions['type']] : "NULL",
|
|
game[positions['players']] ? game[positions['players']] : "NULL",
|
|
game[positions['duration']] ? game[positions['duration']] : "NULL",
|
|
game[positions['ages']] ? game[positions['ages']] : "NULL",
|
|
game[positions['language']] ? game[positions['language']] : "NULL",
|
|
game[positions['universe']] ? game[positions['universe']] : "NULL",
|
|
game[positions['ranges']] ? game[positions['ranges']] : "NULL",
|
|
game[positions['categories']] ? game[positions['categories']] : "NULL",
|
|
game[positions['themes']] ? game[positions['themes']] : "NULL",
|
|
game[positions['mecanisms']] ? game[positions['mecanisms']] : "NULL",
|
|
game[positions['editor']],
|
|
game[positions['authors']],
|
|
game[positions['illustrators']])
|
|
}
|
|
})
|
|
//connection.end();
|
|
|
|
res.status(200).send({message: "success"});
|
|
});
|
|
|
|
module.exports = router; |