Merge branch 'master' of github.com:Ninja-Jambon/joclud_api
This commit is contained in:
commit
6d4c4ee61e
6 changed files with 100 additions and 1366 deletions
3
.gitignore
vendored
3
.gitignore
vendored
|
@ -1,4 +1,3 @@
|
||||||
/node_modules
|
/node_modules
|
||||||
.env
|
.env
|
||||||
sslcert/privkey.pem
|
package-lock.json
|
||||||
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;
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"port": 3000
|
|
||||||
}
|
|
|
@ -30,7 +30,7 @@ function getGames(connection) {
|
||||||
function getGame(connection, gameid) {
|
function getGame(connection, gameid) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
connection.query(
|
connection.query(
|
||||||
`SELECT * FROM games WHERE id = "${gameid}"`,
|
`SELECT * FROM games WHERE id = ${gameid}`,
|
||||||
(error, result) => {
|
(error, result) => {
|
||||||
if (error) {
|
if (error) {
|
||||||
reject(new Error(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) {
|
function addHelper(connection, game_id, user_id) {
|
||||||
return new Promise((resolve, reject) => {
|
return new Promise((resolve, reject) => {
|
||||||
connection.query(
|
connection.query(
|
||||||
|
@ -148,6 +167,8 @@ module.exports = {
|
||||||
|
|
||||||
getGames,
|
getGames,
|
||||||
getGame,
|
getGame,
|
||||||
|
addGame,
|
||||||
|
|
||||||
addHelper,
|
addHelper,
|
||||||
removeHelper,
|
removeHelper,
|
||||||
getHelpers,
|
getHelpers,
|
||||||
|
|
1360
package-lock.json
generated
1360
package-lock.json
generated
File diff suppressed because it is too large
Load diff
|
@ -19,6 +19,7 @@
|
||||||
"fs": "^0.0.1-security",
|
"fs": "^0.0.1-security",
|
||||||
"https": "^1.0.0",
|
"https": "^1.0.0",
|
||||||
"jsonwebtoken": "^9.0.2",
|
"jsonwebtoken": "^9.0.2",
|
||||||
|
"multer": "^1.4.5-lts.1",
|
||||||
"mysql": "^2.18.1",
|
"mysql": "^2.18.1",
|
||||||
"nodemon": "^3.1.4",
|
"nodemon": "^3.1.4",
|
||||||
"sha256": "^0.2.0"
|
"sha256": "^0.2.0"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue