122 lines
4.4 KiB
JavaScript
122 lines
4.4 KiB
JavaScript
const express = require('express');
|
|
const apiPanel = express.Router();
|
|
const fs = require('fs');
|
|
|
|
require('dotenv').config();
|
|
//mysql
|
|
var mysql = require('mysql2');
|
|
var con = mysql.createConnection({
|
|
host: process.env.MYSQLHOST,
|
|
user: process.env.MYSQLUSER,
|
|
password: process.env.MYSQLPASS,
|
|
port : process.env.MYSQLPORT,
|
|
database: process.env.MYSQLDB,
|
|
insecureAuth : true
|
|
});
|
|
con.connect(function(err) {
|
|
if (err) throw err;
|
|
console.log('Connected!');
|
|
});
|
|
var bodyParser = require('body-parser');
|
|
apiPanel.use(bodyParser.json());
|
|
const {checkPesel, loger, sendToDiscord, sendEmail, makeid, checkSendEmail, baza, massEmail} = require('./func.js');
|
|
|
|
|
|
//sprawdź czy token jest w bazie i jest 24h od generacji, jeżeli starszy zwróć że trzeba się zalogować ponownie
|
|
apiPanel.use(function(req, res, next) {
|
|
var token = req.headers.token || req.body.token;
|
|
con.query('SELECT * FROM tokeny, login WHERE token = ? AND tokeny.userId = login.id AND aktywny = 1', [token], function(err, result) {
|
|
if(result.length > 0) {
|
|
var czas = new Date(result[0].czasAktywacji);
|
|
var now = new Date();
|
|
if(now.getTime() - czas.getTime() > 86400000) {
|
|
res.send(403, {response: "Zaloguj się ponownie"});
|
|
} else {
|
|
req.user = result[0];
|
|
next();
|
|
}
|
|
}
|
|
else {
|
|
res.send(403, {response: "Nie jesteś zalogowany"});
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
|
|
apiPanel.post("/liczacy", function(req, res) {
|
|
var imie = req.body.imie;
|
|
var nazwisko = req.body.nazwisko;
|
|
var qr = makeid(24);
|
|
con.query("SELECT * FROM liczacy WHERE qr = ?", [qr], function(err, result) {
|
|
if(result.length > 0) {
|
|
res.send(400, {response: "Błąd, spróbuj ponownie"});
|
|
} else {
|
|
con.query("SELECT * FROM liczacy WHERE imie = ? AND nazwisko = ? AND aktywne = 1", [imie, nazwisko], function(err, result) {
|
|
if(result.length > 0) {
|
|
res.send(403, {response: "Błąd, spróbuj ponownie, taka osoba istnieje"});
|
|
} else {
|
|
con.query('INSERT INTO liczacy (imie, nazwisko, qr) VALUES (?, ?, ?)', [imie, nazwisko, qr], function(err, result) {
|
|
res.send({response: "Dodano", qr: qr});
|
|
});
|
|
}
|
|
});
|
|
}
|
|
});
|
|
});
|
|
|
|
apiPanel.get("/potwierdzRozliczenie", function(req, res) {
|
|
con.query('SELECT * FROM rozliczenie WHERE aktywne = 1 AND weryfikowal = 0 ORDER BY czasRozliczenia DESC', function(err, result) {
|
|
res.send(result);
|
|
});
|
|
});
|
|
|
|
apiPanel.get("/potwierdzRozliczenie/:id", function(req, res) {
|
|
var id = req.params.id;
|
|
con.query('SELECT * FROM rozliczenie WHERE id = ? AND aktywne = 1 AND weryfikowal = 0', [id], function(err, result) {
|
|
if(result.length > 0) {
|
|
res.send(result[0]);
|
|
} else {
|
|
res.send(403, {response: "Błąd, spróbuj ponownie"});
|
|
}
|
|
});
|
|
});
|
|
|
|
apiPanel.post("/potwierdzRozliczenie/:id", function(req, res) {
|
|
var id = req.params.id;
|
|
if(id == undefined)
|
|
return res.send(400, {response: "Błąd"});
|
|
con.query('UPDATE rozliczenie SET weryfikowal = ? WHERE id = ? AND aktywne = 1 AND weryfikowal = 0', [req.user.id, id], function(err, result) {
|
|
if (err){
|
|
loger(fs, 'Błąd: ' + err, 'error');
|
|
res.send(400, {response: "Błąd"});
|
|
}
|
|
if(result.affectedRows > 0) {
|
|
res.send({response: "Potwierdzono"});
|
|
} else {
|
|
res.send(403, {response: "Błąd, spróbuj ponownie"});
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
apiPanel.get("/top10Liczacy", function(req, res) {
|
|
con.query("SELECT idLiczacego, imie, nazwisko, sumaPrzeliczona FROM `sumaPrzeliczona` ORDER BY `sumaPrzeliczona`.`sumaPrzeliczona` DESC LIMIT 10;", function(err, result) {
|
|
if (err){
|
|
loger(fs, 'Błąd: ' + err, 'error');
|
|
res.send(400, {response: "Błąd"});
|
|
}
|
|
res.send(result);
|
|
});
|
|
});
|
|
apiPanel.get("/top10Wolontariuszy", function(req, res) {
|
|
con.query('SELECT numerIdentyfikatora, imie, nazwisko, suma FROM `SumaZebranaPrzezWolontariuszy` ORDER BY `SumaZebranaPrzezWolontariuszy`.`suma` DESC LIMIT 10;', function(err, result) {
|
|
if (err){
|
|
loger(fs, 'Błąd: ' + err, 'error');
|
|
res.send(400, {response: "Błąd"});
|
|
}
|
|
res.send(result);
|
|
});
|
|
});
|
|
|
|
module.exports = apiPanel; |