commit
This commit is contained in:
parent
afc5217d0a
commit
7d70b0bfb5
4 changed files with 100 additions and 1 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -1,4 +1,5 @@
|
|||
/node_modules
|
||||
.env
|
||||
package-lock.json
|
||||
sslcert/privkey.pem
|
||||
sslcert/fullchain.pem
|
76
api/v1/admin/addGames.js
Normal file
76
api/v1/admin/addGames.js
Normal 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;
|
|
@ -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,
|
||||
|
|
|
@ -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"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue