Initial commit
This commit is contained in:
159
routes/api.js
Normal file
159
routes/api.js
Normal file
@@ -0,0 +1,159 @@
|
||||
var express = require('express');
|
||||
var router = express.Router();
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
/* GET nem elérhető autók listája. */
|
||||
router.get('/nemelerheto', function (req, res, next) {
|
||||
console.log("Api hívás érkezett: /nemelerheto api kérés érkezett a Frontendtől");
|
||||
res.send(JSON.stringify(
|
||||
{
|
||||
nemElerhetoAutok: 'Ferrari Spider 1992, Moszkvics 408'
|
||||
}
|
||||
))
|
||||
});
|
||||
|
||||
|
||||
/* Vélemény bejegyzések kezelése */
|
||||
let velemenyekJsonPath = path.join(__dirname, '../assets/velemenyek.json');
|
||||
var velemenyek = [];
|
||||
|
||||
initializeVelemenyek(velemenyekJsonPath);
|
||||
|
||||
function initializeVelemenyek(path) {
|
||||
try {
|
||||
velemenyek = require(path);
|
||||
} catch (e) {
|
||||
console.log("Még nincs érvényes véleményeket tartalmazó fájl.")
|
||||
}
|
||||
}
|
||||
|
||||
/* POST velemeny */
|
||||
router.post('/velemeny', function (req, res, next) {
|
||||
console.log("Api hívás érkezett: vásárlói vélemény rögzítése: ", req.body);
|
||||
|
||||
velemenyek.push({
|
||||
"velemeny": req.body.velemeny,
|
||||
"date": new Date().toLocaleString()
|
||||
});
|
||||
fs.writeFileSync(velemenyekJsonPath, JSON.stringify(velemenyek));
|
||||
|
||||
res.send(JSON.stringify(req.body));
|
||||
});
|
||||
|
||||
/* GET velemeny */
|
||||
router.get('/velemeny', function (req, res, next) {
|
||||
console.log("Api hívás érkezett: vásárlói vélemény lekérdezése.");
|
||||
if (velemenyek.length === 0) {
|
||||
res.send(JSON.stringify(
|
||||
[{
|
||||
"velemeny": "Még nem érkezett felhasználói bejegyzés.",
|
||||
"date": null
|
||||
}]
|
||||
));
|
||||
} else {
|
||||
res.send(JSON.stringify(velemenyek));
|
||||
}
|
||||
});
|
||||
|
||||
router.delete('/velemeny', function (req, res, next) {
|
||||
console.log("Api hívás érkezett: vásárlói vélemények törlése.");
|
||||
try{
|
||||
velemenyek = [];
|
||||
fs.unlinkSync(velemenyekJsonPath, JSON.stringify(velemenyek));
|
||||
res.send(JSON.stringify({'message':'Törlés sikeres'}));
|
||||
} catch (e) {
|
||||
res.send(JSON.stringify({'message':'Nem történt törlés, mert a fájl nem létezik (még).'}));
|
||||
}
|
||||
});
|
||||
|
||||
// Admin eszközök
|
||||
var mysql = require('mysql');
|
||||
var sqlTasks = require('../assets/sqlTasks.json');
|
||||
var db = {
|
||||
host: 'localhost',
|
||||
user: 'root',
|
||||
password: '',
|
||||
database: 'oldtimer'
|
||||
};
|
||||
|
||||
const getSqlTasks = require('../assets/sqlTasks');
|
||||
const databaseQuery = sqlQuery => {
|
||||
return new Promise((resolve, reject) => {
|
||||
const connection = mysql.createConnection(db);
|
||||
connection.connect();
|
||||
if (sqlQuery !== 'select version();') {
|
||||
console.log('sqlQuery futtatása:', sqlQuery);
|
||||
}
|
||||
connection.query(sqlQuery, (error, lines, fields) => {
|
||||
if (error) reject(error);
|
||||
resolve(lines);
|
||||
connection.end();
|
||||
})
|
||||
})
|
||||
};
|
||||
|
||||
/* GET sqlTasks */
|
||||
router.get('/sqltasks', function (req, res, next) {
|
||||
res.send(JSON.stringify(sqlTasks))
|
||||
});
|
||||
|
||||
/* fech data from database */
|
||||
router.get('/lekerdezes/:id', function (req, res, next) {
|
||||
getSqlTasks().then(result => {
|
||||
console.log("API hívás érkezett: lekérdezés futtatása:", req.params['id'], ' sorszámmal.');
|
||||
const sqlTasks = result;
|
||||
const sqlTaskById = sqlTasks.filter(task => task.id == req.params.id);
|
||||
|
||||
if (sqlTaskById) {
|
||||
sqlTask = sqlTaskById[0];
|
||||
if (sqlTask.sql) {
|
||||
databaseQuery(sqlTask.sql)
|
||||
.then(result => {
|
||||
res.send(JSON.stringify(result))
|
||||
})
|
||||
.catch(error => {
|
||||
console.error("Hiba történt az SQL parancs végrehajtása során:", error.sqlMessage ? error.sqlMessage : error.code);
|
||||
res.status(error.status || 500);
|
||||
if (error.code && error.code === "ER_BAD_DB_ERROR") {
|
||||
console.error("Még nincsen létrehozva a feladathoz szükséges adatbázis!");
|
||||
res.send(JSON.stringify({error: error.code}))
|
||||
} else if (error.code && error.code === "ER_NO_SUCH_TABLE") {
|
||||
console.error("Még nincsen létrehozva a feladathoz tartozó tábla!");
|
||||
res.send(JSON.stringify({error: error.code}))
|
||||
} else if (error.code && error.code === "ECONNREFUSED") {
|
||||
console.error("Nem sikerült a MySQL adatbázis szerverhez kapcsolódni.");
|
||||
res.send(JSON.stringify({error: error.code}))
|
||||
} else if (error.sqlMessage) {
|
||||
console.log(error.sqlMessage);
|
||||
res.send(JSON.stringify({error: error.sqlMessage}))
|
||||
} else {
|
||||
console.log(JSON.stringify(error));
|
||||
res.send(JSON.stringify({error: 'Ismeretlen eredetű hiba!'}))
|
||||
}
|
||||
})
|
||||
} else {
|
||||
console.log("Ehhez a feladathoz még nem szerepel SQL lekérdezés a beadandó fájlban.");
|
||||
res.send(JSON.stringify({empty: true}))
|
||||
}
|
||||
}
|
||||
})
|
||||
});
|
||||
/* GET server status monitoring */
|
||||
router.get('/serverStatus', function (req, res, next) {
|
||||
res.send(JSON.stringify({alive: true}))
|
||||
});
|
||||
/* GET SQL status monitoring */
|
||||
router.get('/mysqlStatus', function (req, res, next) {
|
||||
databaseQuery('select version();')
|
||||
.then(result => {
|
||||
res.send({alive: true})
|
||||
})
|
||||
.catch(error => {
|
||||
res.send({alive: false})
|
||||
})
|
||||
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user