minis-data-old/app.js
Walamana 46210872db Debuging for production mode
Signed-off-by: Walamana <joniogerg@gmail.com>
2017-11-27 16:55:44 +01:00

163 lines
5.0 KiB
JavaScript

var express = require("express");
var cookieParser = require("cookie-parser");
var app = express();
app.use(cookieParser());
var uuid = require("uuid/v4");
var mysql = require("mysql");
var con = mysql.createConnection({
host: "localhost",
user: "minis",
password: "asIt90@6",
database: "minis"
});
con.connect(err => {
if (err) {
console.log("Cant connect to MySQL database");
}
console.log("Connected to database!");
});
app.get('/', (req, res) => {
if(!isConnected()){res.send("No Connection to database<br>" + con.passworld + "; " + con.user + "; " + con.database);return}
res.send("Welcome to the miniplan api!");
});
app.get('/login', (req, res) => {
if(!isConnected()){res.send("No Connection to database");return}
var username = req.query.username;
var password = req.query.password;
if(username == undefined || password == undefined){
res.send({success: false, error: "Missing parameters"});
return;
}
username = username.toLowerCase();
con.query("SELECT UserToken FROM ministranten WHERE Username='" + username + "'", (err, result) => {
if(result[0]["UserToken"] == req.cookies.loginToken){
res.send({success: true});
}else{
con.query("SELECT Passwort FROM ministranten WHERE Username='" + username + "'", (err, result) => {
if (err) throw err;
if(password == result[0]["Passwort"]){
var usertoken = uuid();
res.cookie("loginToken", usertoken);
con.query("UPDATE `ministranten` SET `UserToken` = '" + usertoken + "' WHERE `ministranten`.`Username` = '" + username + "';");
res.send({success: true, token: usertoken});
}else{
res.send({success: false});
}
});
}
});
});
app.get("/user/:user/update", (req, res) => {
if(!isConnected()){res.send("No Connection to database");return}
});
app.get("/gottesdienste", (req, res) => {
if(!isConnected()){res.send("No Connection to database");return}
var groupid = req.params.groupid;
con.query("SELECT ID from gottesdienstgruppe ORDER BY ID DESC LIMIT 1", (err, result) => {
if (err) throw err;
con.query("SELECT * from gottesdienste WHERE GruppeID='" + result[0]["ID"] + "' ORDER BY `gottesdienste`.`Datum` ASC LIMIT 0 , 30 ", (err, result) => {
if (err) throw err;
res.send(JSON.stringify(result));
});
});
});
app.get("/gottesdienste/:groupid", (req, res) => {
if(!isConnected()){res.send("No Connection to database");return}
var groupid = req.params.groupid;
con.query("SELECT * from gottesdienste WHERE GruppeID='" + groupid + "' ORDER BY `gottesdienste`.`Datum` ASC LIMIT 0 , 30", (err, result) => {
if (err) throw err;
res.send(JSON.stringify(result));
});
});
app.get("/groups", (req, res) => {
con.query("SELECT * from gottesdienstgruppe ORDER BY `gottesdienstGruppe`.`ID` DESC LIMIT 0, 5", (err, result) => {
if (err) throw err;
res.send(JSON.stringify(result));
});
});
app.get("/ministranten", (req, res) =>{
if(!isConnected()){res.send("No Connection to database");return}
con.query("SELECT UserToken FROM ministranten WHERE UserToken='" + req.cookies.loginToken + "'", (err, result) => {
var loggedIn = result.length == 1;
con.query("SELECT Name, Username FROM `ministranten`", (err, result) => {
if (err) throw err;
var minis = result;
if(!loggedIn){
for(var i = 0; i < minis.length; i++){
if(minis[i]["Name"] == "admin"){
minis.splice(0, 1);
i--;
continue;
}
minis[i]["Name"] = minis[i]["Name"].split(" ")[0].substring(0, 1) + ". " + minis[i]["Name"].split(" ")[1];
}
}else{
minis.splice(0, 1);
}
for(var i = 0; i < minis.length; i++){
attachToMini(minis[i])
}
res.send(JSON.stringify(minis));
});
});
});
var attachToMini = function(mini){
mini.registered = [];
con.query("SELECT * FROM `" + mini.Name.toLowerCase() + "` LIMIT 0 , 30", (err, data) => {
for(var j = 0; j < data.length; j++){
mini.registered[data[j]["GottesdienstIDs"]] = data[j]["Anwesend"];
}
console.log(JSON.stringify(mini));
});
}
app.listen(3000, () => {
console.log("API started!");
});
function isConnected(){
if(con.isConnected){
return true;
}else{
return false;
}
}
function removeFromArrayByValue(value, array) {
var index = array.indexOf(value);
if(index > -1){
array.splice(index, 1);
}
}
function removeFromArray(index, array) {
var index = array.indexOf(value);
if(index > -1){
array.splice(index, 1);
}
}