2025-01-08 06:48:06 +00:00
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 ;
2025-01-08 08:19:04 +00:00
con . query ( 'SELECT * FROM tokeny, login WHERE token = ? AND tokeny.userId = login.id AND aktywny = 1' , [ token ] , function ( err , result ) {
2025-01-08 06:48:06 +00:00
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 {
2025-01-08 09:17:51 +00:00
req . user = result [ 0 ] ;
2025-01-08 06:48:06 +00:00
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 {
2025-01-08 08:19:04 +00:00
con . query ( 'INSERT INTO liczacy (imie, nazwisko, qr) VALUES (?, ?, ?)' , [ imie , nazwisko , qr ] , function ( err , result ) {
2025-01-08 06:48:06 +00:00
res . send ( { response : "Dodano" , qr : qr } ) ;
} ) ;
}
} ) ;
}
} ) ;
} ) ;
2025-01-08 09:17:51 +00:00
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 ;
2025-01-08 11:09:35 +00:00
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" } ) ;
}
2025-01-08 09:17:51 +00:00
if ( result . affectedRows > 0 ) {
res . send ( { response : "Potwierdzono" } ) ;
} else {
res . send ( 403 , { response : "Błąd, spróbuj ponownie" } ) ;
}
} ) ;
} ) ;
2025-01-08 06:48:06 +00:00
2025-01-08 09:21:44 +00:00
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 ) {
2025-01-08 11:09:35 +00:00
if ( err ) {
loger ( fs , 'Błąd: ' + err , 'error' ) ;
res . send ( 400 , { response : "Błąd" } ) ;
}
2025-01-08 09:21:44 +00:00
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 ) {
2025-01-08 11:09:35 +00:00
if ( err ) {
loger ( fs , 'Błąd: ' + err , 'error' ) ;
res . send ( 400 , { response : "Błąd" } ) ;
}
2025-01-08 09:21:44 +00:00
res . send ( result ) ;
} ) ;
} ) ;
2025-01-08 06:48:06 +00:00
module . exports = apiPanel ;