This commit is contained in:
Lukian 2024-09-17 19:17:18 +02:00
parent afc5217d0a
commit 7d70b0bfb5
4 changed files with 100 additions and 1 deletions

1
.gitignore vendored
View file

@ -1,4 +1,5 @@
/node_modules
.env
package-lock.json
sslcert/privkey.pem
sslcert/fullchain.pem

76
api/v1/admin/addGames.js Normal file
View file

@ -0,0 +1,76 @@
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;

View file

@ -30,7 +30,7 @@ function getGames(connection) {
function getGame(connection, gameid) {
return new Promise((resolve, reject) => {
connection.query(
`SELECT * FROM games WHERE id = "${gameid}"`,
`SELECT * FROM games WHERE id = ${gameid}`,
(error, result) => {
if (error) {
reject(new Error(error));
@ -41,6 +41,25 @@ function getGame(connection, gameid) {
})
}
function addGame(connection, id, title, subtitle, edition, type, players, duration, ages, languages, universe, ranges, categories, themes, mecanisms, editor, authors, illustrators) {
console.log(`INSERT INTO games (id, title, subtitle, edition, type, players, duration, ages, languages, universe, ranges, categories, themes, mecanisms, editor, authors, illustrators) VALUES (${id}, "${title}", "${subtitle}", ${edition}, "${type}", "${players}", "${duration}", "${ages}", "${languages}", "${universe}", "${ranges}", "${categories}", "${themes}", "${mecanisms}", "${editor}", "${authors}", "${illustrators}")`)
return new Promise((resolve, reject) => {
connection.query(
`INSERT INTO games (id, title, subtitle, edition, type, players, duration, ages, languages, universe, ranges, categories, themes, mecanisms, editor, authors, illustrators) VALUES (${id}, "${title}", "${subtitle}", ${edition}, "${type}", "${players}", "${duration}", "${ages}", "${languages}", "${universe}", "${ranges}", "${categories}", "${themes}", "${mecanisms}", "${editor}", "${authors}", "${illustrators}")`,
(error, result) => {
if (error) {
reject(new Error(error));
}
resolve(result);
}
)
})
}
// +-----------------------------------+
// | HELPERS |
// +-----------------------------------+
function addHelper(connection, game_id, user_id) {
return new Promise((resolve, reject) => {
connection.query(
@ -148,6 +167,8 @@ module.exports = {
getGames,
getGame,
addGame,
addHelper,
removeHelper,
getHelpers,

View file

@ -19,6 +19,7 @@
"fs": "^0.0.1-security",
"https": "^1.0.0",
"jsonwebtoken": "^9.0.2",
"multer": "^1.4.5-lts.1",
"mysql": "^2.18.1",
"nodemon": "^3.1.4",
"sha256": "^0.2.0"