Merge branch 'hogintegration' of toking/swd-be into master
This commit is contained in:
commit
07ab3f4816
|
@ -2,3 +2,6 @@
|
||||||
|
|
||||||
Schmeckt wie Daheim Backend
|
Schmeckt wie Daheim Backend
|
||||||
geschrieben in Node.js
|
geschrieben in Node.js
|
||||||
|
|
||||||
|
|
||||||
|
zum Starten node app.js
|
||||||
|
|
21
app.js
21
app.js
|
@ -5,10 +5,15 @@ var logger = require('morgan');
|
||||||
var cors = require('cors');
|
var cors = require('cors');
|
||||||
var sassMiddleware = require('node-sass-middleware');
|
var sassMiddleware = require('node-sass-middleware');
|
||||||
|
|
||||||
|
var xml = require('xml');
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//var passport = require('passport');
|
//var passport = require('passport');
|
||||||
//var LocalStrategy = require('passport-local').Strategy;
|
//var LocalStrategy = require('passport-local').Strategy;
|
||||||
|
|
||||||
const db = require('./db')
|
const db = require('./db')
|
||||||
|
const dbhog = require('./dbhog')
|
||||||
|
|
||||||
const PORT = process.env.PORT || 4000;
|
const PORT = process.env.PORT || 4000;
|
||||||
|
|
||||||
|
@ -16,6 +21,11 @@ var indexRouter = require('./routes/index');
|
||||||
var usersRouter = require('./routes/users');
|
var usersRouter = require('./routes/users');
|
||||||
var valuelistRouter = require('./routes/valuelist');
|
var valuelistRouter = require('./routes/valuelist');
|
||||||
var recepieRouter = require('./routes/recepie');
|
var recepieRouter = require('./routes/recepie');
|
||||||
|
var personRouter = require('./routes/v1/person');
|
||||||
|
var schuelerRouter = require('./routes/v1/schueler');
|
||||||
|
var schuljahrRouter = require('./routes/v1/schuljahr');
|
||||||
|
var punkteRouter = require('./routes/v1/punkte');
|
||||||
|
var hausRouter = require('./routes/v1/haus');
|
||||||
|
|
||||||
|
|
||||||
var app = express();
|
var app = express();
|
||||||
|
@ -58,11 +68,22 @@ app.use('/', (req, res, next ) => {
|
||||||
next();
|
next();
|
||||||
})
|
})
|
||||||
|
|
||||||
|
app.use('/api/v1', (req, res, next ) => {
|
||||||
|
req.db = dbhog;
|
||||||
|
next();
|
||||||
|
})
|
||||||
|
|
||||||
app.use('/', indexRouter);
|
app.use('/', indexRouter);
|
||||||
app.use('/users', usersRouter);
|
app.use('/users', usersRouter);
|
||||||
app.use('/wl', valuelistRouter);
|
app.use('/wl', valuelistRouter);
|
||||||
app.use('/recepies', recepieRouter);
|
app.use('/recepies', recepieRouter);
|
||||||
|
|
||||||
|
app.use('/api/v1/person', personRouter);
|
||||||
|
app.use('/api/v1/schueler', schuelerRouter);
|
||||||
|
app.use('/api/v1/schuljahr', schuljahrRouter);
|
||||||
|
app.use('/api/v1/punkte', punkteRouter);
|
||||||
|
app.use('/api/v1/haus', hausRouter);
|
||||||
|
|
||||||
|
|
||||||
// catch 404 and forward to error handler
|
// catch 404 and forward to error handler
|
||||||
app.use(function(req, res, next) {
|
app.use(function(req, res, next) {
|
||||||
|
|
|
@ -0,0 +1,194 @@
|
||||||
|
// SQL-Class
|
||||||
|
// Author: Thomas Mack
|
||||||
|
|
||||||
|
const DEBUG = true;
|
||||||
|
|
||||||
|
const { Pool } = require('pg');
|
||||||
|
const pool = new Pool({
|
||||||
|
user: 'postgres',
|
||||||
|
host: 'localhost',
|
||||||
|
database: 'hogwarts',
|
||||||
|
password: 'postgres',
|
||||||
|
port: 5432
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
const query = function (text, params, callback) {
|
||||||
|
const start = Date.now()
|
||||||
|
return pool.query(text, params, (err, res) => {
|
||||||
|
const duration = Date.now() - start;
|
||||||
|
//if(res)
|
||||||
|
console.log('executed query', { text, duration})
|
||||||
|
callback(err, res)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
const getClient = function (callback) {
|
||||||
|
pool.connect((err, client, done) => {
|
||||||
|
callback(err, client, done)
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const dataStructure = {
|
||||||
|
|
||||||
|
categories: {
|
||||||
|
tableName: "kategorie",
|
||||||
|
jsonName: "categories"
|
||||||
|
},
|
||||||
|
|
||||||
|
units: {
|
||||||
|
tableName: "einheit",
|
||||||
|
jsonName: "units"
|
||||||
|
},
|
||||||
|
|
||||||
|
tools: {
|
||||||
|
tableName: "geraet",
|
||||||
|
jsonName: "tools"
|
||||||
|
},
|
||||||
|
|
||||||
|
difficulties: {
|
||||||
|
tableName: "schwierigkeit",
|
||||||
|
jsonName: "difficulties"
|
||||||
|
},
|
||||||
|
|
||||||
|
ingredients: {
|
||||||
|
tableName: "zutat",
|
||||||
|
jsonName: "ingredients"
|
||||||
|
},
|
||||||
|
|
||||||
|
ratingcategories: {
|
||||||
|
tableName: "wertungkategorie",
|
||||||
|
jsonName: "ratingcategories"
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const selectAllFromTable = (table) => {
|
||||||
|
return "SELECT * FROM "+table+" order by name;";
|
||||||
|
}
|
||||||
|
|
||||||
|
const selectAllFromTableByFieldValue = (table, field, value) => {
|
||||||
|
return "SELECT * FROM "+table+" WHERE "+field+"="+value+";";
|
||||||
|
}
|
||||||
|
|
||||||
|
const selectItemFromTable = function (table, id) {
|
||||||
|
return "SELECT * FROM "+table+" WHERE id = "+id+";";
|
||||||
|
}
|
||||||
|
|
||||||
|
const deleteItemFromTable = function (table, id) {
|
||||||
|
return "DELETE FROM "+table+" WHERE id = "+id+";";
|
||||||
|
}
|
||||||
|
|
||||||
|
const deleteNameKeyObject = function(req, res, next) {
|
||||||
|
if(DEBUG) console.log("Delte Valuelist");
|
||||||
|
let structure = getStructure(req);
|
||||||
|
let obj = req.body[structure.jsonName][0];
|
||||||
|
let query = "DELETE FROM "+structure.tableName+
|
||||||
|
" WHERE id = "+req.itemId;
|
||||||
|
pool.query(query, (err, rs) => {
|
||||||
|
if(err) {
|
||||||
|
console.log(query);
|
||||||
|
next(err)
|
||||||
|
} else {
|
||||||
|
res.status(204).send();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const updateNameKeyObject = function(req, res, next) {
|
||||||
|
if(DEBUG) console.log("Update Valuelist");
|
||||||
|
let structure = getStructure(req);
|
||||||
|
if(DEBUG) console.log(req.body[structure.jsonName]);
|
||||||
|
let obj = req.body[structure.jsonName][0];
|
||||||
|
let query = "UPDATE "+structure.tableName+
|
||||||
|
" set schluessel = '"+obj.schluessel+
|
||||||
|
"', name = '"+obj.name+
|
||||||
|
"', beschreibung = '"+obj.beschreibung+
|
||||||
|
"' WHERE id = "+req.itemId+" returning *";
|
||||||
|
pool.query(query, (err, rs) => {
|
||||||
|
if(err) {
|
||||||
|
console.log(query);
|
||||||
|
next(err)
|
||||||
|
} else {
|
||||||
|
let result = {};
|
||||||
|
result[structure['jsonName']] = rs.rows;
|
||||||
|
res.status(200).json(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
const insertNameKeyObject = function(req, res, next) {
|
||||||
|
if(DEBUG) console.log("Insert Valuelist");
|
||||||
|
let structure = getStructure(req);
|
||||||
|
if(DEBUG) console.log(req.body[structure.jsonName]);
|
||||||
|
let obj = req.body[structure.jsonName][0];
|
||||||
|
|
||||||
|
let query = "INSERT INTO "+structure.tableName+" (schluessel, name, beschreibung) "+
|
||||||
|
" VALUES ('"+obj.schluessel+"','"+obj.name+"','"+obj.beschreibung+"')" +
|
||||||
|
" returning *";
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
pool.query(query, (err, rs) => {
|
||||||
|
if(err) {
|
||||||
|
console.log(query);
|
||||||
|
next(err)
|
||||||
|
} else {
|
||||||
|
let result = {};
|
||||||
|
result[structure['jsonName']] = rs.rows;
|
||||||
|
console.log(result);
|
||||||
|
res.status(200).json(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const getStructure = function(req) {
|
||||||
|
let path = req.pathCall;
|
||||||
|
let structure = dataStructure[path];
|
||||||
|
return structure;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
const getAllFromTable = function(req, res, next) {
|
||||||
|
|
||||||
|
let structure = getStructure(req);
|
||||||
|
if(DEBUG) {
|
||||||
|
console.log("Found Structure-Object: ");
|
||||||
|
console.log(structure);
|
||||||
|
}
|
||||||
|
if(structure === undefined) return res.status(404).send();
|
||||||
|
pool.query(selectAllFromTable(structure.tableName), (err, rs) => {
|
||||||
|
if(err) next(err)
|
||||||
|
else {
|
||||||
|
if(DEBUG) console.log(res);
|
||||||
|
let result = {};
|
||||||
|
result[structure['jsonName']] = rs.rows;
|
||||||
|
console.log(result);
|
||||||
|
res.status(200).json(result);
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
const getUserByEmail = function(username) {
|
||||||
|
let query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE email ilike '"+username+"'";
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
req.db.query(query, (err, rs) => {
|
||||||
|
if (err) {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return rs.rows[0];
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
query,
|
||||||
|
selectAllFromTable,
|
||||||
|
selectAllFromTableByFieldValue,
|
||||||
|
deleteItemFromTable,
|
||||||
|
updateNameKeyObject,
|
||||||
|
insertNameKeyObject,
|
||||||
|
deleteNameKeyObject,
|
||||||
|
getAllFromTable,
|
||||||
|
getUserByEmail,
|
||||||
|
getStructure
|
||||||
|
};
|
|
@ -2035,6 +2035,14 @@
|
||||||
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
|
||||||
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
"integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
|
||||||
},
|
},
|
||||||
|
"connect-pg-simple": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/connect-pg-simple/-/connect-pg-simple-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-WZ7xkN+qe5bbDLgZ1L9GxnSbr155cJHmfNRzVR5hBvqio7Pg/vuH7Cf8lPUSFClQjtybYSejUqyO54sYt4cg+w==",
|
||||||
|
"requires": {
|
||||||
|
"pg": "^7.4.3"
|
||||||
|
}
|
||||||
|
},
|
||||||
"console-browserify": {
|
"console-browserify": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz",
|
||||||
|
@ -6802,6 +6810,11 @@
|
||||||
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
|
||||||
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
"integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
|
||||||
},
|
},
|
||||||
|
"xml": {
|
||||||
|
"version": "1.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/xml/-/xml-1.0.1.tgz",
|
||||||
|
"integrity": "sha1-eLpyAgApxbyHuKgaPPzXS0ovweU="
|
||||||
|
},
|
||||||
"xtend": {
|
"xtend": {
|
||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
|
||||||
|
|
|
@ -10,6 +10,7 @@
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bcrypt": "^3.0.3",
|
"bcrypt": "^3.0.3",
|
||||||
"body-parser": "^1.18.3",
|
"body-parser": "^1.18.3",
|
||||||
|
"connect-pg-simple": "^5.0.0",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"debug": "~2.6.9",
|
"debug": "~2.6.9",
|
||||||
"express": "~4.16.0",
|
"express": "~4.16.0",
|
||||||
|
@ -24,7 +25,8 @@
|
||||||
"react": "^16.7.0",
|
"react": "^16.7.0",
|
||||||
"react-dom": "^15.6.1",
|
"react-dom": "^15.6.1",
|
||||||
"react-router-dom": "^4.2.2",
|
"react-router-dom": "^4.2.2",
|
||||||
"whatwg-fetch": "^3.0.0"
|
"whatwg-fetch": "^3.0.0",
|
||||||
|
"xml": "^1.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"babel": "^6.23.0",
|
"babel": "^6.23.0",
|
||||||
|
|
|
@ -64,6 +64,42 @@ router.post('/', function(req, res, next) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
router.put('/login', function(req, res, next) {
|
||||||
|
let username = req.body.username;
|
||||||
|
let password = req.body.password;
|
||||||
|
|
||||||
|
console.log(username);
|
||||||
|
|
||||||
|
let query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE email ilike $1";
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
req.db.query(query, [username], (err, rs) => {
|
||||||
|
if (err) {
|
||||||
|
return next(err)
|
||||||
|
}
|
||||||
|
req.user = rs.rows[0];
|
||||||
|
console.log(req.user);
|
||||||
|
if(!req.user) return next(new Error);
|
||||||
|
|
||||||
|
console.log(req.user.kennwort);
|
||||||
|
|
||||||
|
bcrypt.compare(password, req.user.kennwort, function(err, checkResult) {
|
||||||
|
console.log(checkResult);
|
||||||
|
if(checkResult) {
|
||||||
|
console.log("Login erfolgreich")
|
||||||
|
req.login = true;
|
||||||
|
} else {
|
||||||
|
req.login = false;
|
||||||
|
console.log(err);
|
||||||
|
res.status(409).send("Passwd didn't match");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
next();
|
||||||
|
|
||||||
|
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
/* Methods with id */
|
/* Methods with id */
|
||||||
router.get('/:userId', function(req, res, next) {
|
router.get('/:userId', function(req, res, next) {
|
||||||
let user = {};
|
let user = {};
|
||||||
|
@ -114,7 +150,7 @@ router.put('/:userId/changepasswd', function(req, res, next) {
|
||||||
console.log("Compare: "+oldPasswd+" WITH "+req.user.kennwort+" Result:");
|
console.log("Compare: "+oldPasswd+" WITH "+req.user.kennwort+" Result:");
|
||||||
console.log(checkResult);
|
console.log(checkResult);
|
||||||
if(checkResult) {
|
if(checkResult) {
|
||||||
bcrypt.hash('myPassword', 10, function(err, hash) {
|
bcrypt.hash(newPasswd, 10, function(err, hash) {
|
||||||
let query = "UPDATE nutzer set kennwort = '"+hash+"'"+
|
let query = "UPDATE nutzer set kennwort = '"+hash+"'"+
|
||||||
" WHERE id = "+req.userId +
|
" WHERE id = "+req.userId +
|
||||||
" returning *";
|
" returning *";
|
||||||
|
@ -143,6 +179,7 @@ router.put('/:userId/changepasswd', function(req, res, next) {
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
router.delete('/:userId', function(req, res, next) {
|
router.delete('/:userId', function(req, res, next) {
|
||||||
let query = [
|
let query = [
|
||||||
"DELETE FROM nutzer_favorit where nutzer = $1;",
|
"DELETE FROM nutzer_favorit where nutzer = $1;",
|
||||||
|
|
|
@ -0,0 +1,76 @@
|
||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
const cors = require('cors');
|
||||||
|
const xml = require('xml');
|
||||||
|
|
||||||
|
|
||||||
|
const bcrypt = require('bcrypt');
|
||||||
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
|
const DEBUG = true;
|
||||||
|
|
||||||
|
router.param('hausId', function(req, res, next, id) {
|
||||||
|
req.hausId = id;
|
||||||
|
let query = " Select * from haus ";
|
||||||
|
query += " WHERE id = $1";
|
||||||
|
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
if(DEBUG) console.log(req.hausId);
|
||||||
|
req.db.query(query, [req.hausId], (err, rs) => {
|
||||||
|
if (err) {
|
||||||
|
return next(err)
|
||||||
|
}
|
||||||
|
let result = "<haus>";
|
||||||
|
for (var i in rs.rows[0]) {
|
||||||
|
var val = rs.rows[0][i];
|
||||||
|
result += "<"+i+">"+val+"</"+i+">";
|
||||||
|
}
|
||||||
|
result += "</haus>";
|
||||||
|
if(DEBUG) console.log(result);
|
||||||
|
|
||||||
|
res.set('Content-Type', 'text/xml');
|
||||||
|
res.send(result);
|
||||||
|
//next();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
/* GET recepies listing. */
|
||||||
|
router.get('/', function(req, res, next) {
|
||||||
|
let query = " Select * from haus ";
|
||||||
|
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
req.db.query(query, (err, rs) => {
|
||||||
|
if (err){
|
||||||
|
console.log(query);
|
||||||
|
next(err);
|
||||||
|
} else {
|
||||||
|
let result = "<list>";
|
||||||
|
|
||||||
|
for (var haus in rs.rows) {
|
||||||
|
console.log(haus);
|
||||||
|
|
||||||
|
result += "<haus>";
|
||||||
|
for (var i in rs.rows[haus]) {
|
||||||
|
var val = rs.rows[haus][i];
|
||||||
|
result += "<"+i+">"+val+"</"+i+">";
|
||||||
|
}
|
||||||
|
result += "</haus>";
|
||||||
|
}
|
||||||
|
result += "</list>";
|
||||||
|
|
||||||
|
|
||||||
|
console.log(result);
|
||||||
|
res.set('Content-Type', 'text/xml');
|
||||||
|
res.send(result);
|
||||||
|
// res.status(200).json(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Methods with id */
|
||||||
|
router.get('/:hausId', function(req, res, next) {
|
||||||
|
|
||||||
|
// res.status(200).json(req.haus);
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
|
@ -0,0 +1,49 @@
|
||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
var cors = require('cors');
|
||||||
|
|
||||||
|
const bcrypt = require('bcrypt');
|
||||||
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
|
const DEBUG = true;
|
||||||
|
|
||||||
|
router.param('personId', function(req, res, next, id) {
|
||||||
|
req.personId = id;
|
||||||
|
let query = " Select * from person ";
|
||||||
|
query += " WHERE id = $1";
|
||||||
|
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
if(DEBUG) console.log(req.personId);
|
||||||
|
req.db.query(query, [req.personId], (err, rs) => {
|
||||||
|
if (err) {
|
||||||
|
return next(err)
|
||||||
|
}
|
||||||
|
req.person = rs.rows[0];
|
||||||
|
next();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
/* GET recepies listing. */
|
||||||
|
router.get('/', function(req, res, next) {
|
||||||
|
let query = " Select * from person ";
|
||||||
|
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
req.db.query(query, (err, rs) => {
|
||||||
|
if (err){
|
||||||
|
console.log(query);
|
||||||
|
next(err);
|
||||||
|
} else {
|
||||||
|
let result = {};
|
||||||
|
result['person'] = rs.rows;
|
||||||
|
console.log(result);
|
||||||
|
res.status(200).json(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Methods with id */
|
||||||
|
router.get('/:personId', function(req, res, next) {
|
||||||
|
res.status(200).json(req.person);
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
|
@ -0,0 +1,35 @@
|
||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
var cors = require('cors');
|
||||||
|
|
||||||
|
const bcrypt = require('bcrypt');
|
||||||
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
|
const DEBUG = true;
|
||||||
|
|
||||||
|
router.param('punkteId', function(req, res, next, id) {
|
||||||
|
req.punkteId = id;
|
||||||
|
const group = req.query.group;
|
||||||
|
|
||||||
|
|
||||||
|
let query = 'SELECT * FROM v_hauspunkte_small WHERE schuljahr = $1;';
|
||||||
|
|
||||||
|
if(group==1) query = 'SELECT schuljahr, haus, sum(punkte) FROM v_hauspunkte WHERE schuljahr = $1 GROUP BY schuljahr, haus;'
|
||||||
|
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
if(DEBUG) console.log(group);
|
||||||
|
req.db.query(query, [req.punkteId], (err, rs) => {
|
||||||
|
if (err) {
|
||||||
|
return next(err)
|
||||||
|
}
|
||||||
|
req.punkte = rs.rows;
|
||||||
|
next();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Methods with id */
|
||||||
|
router.get('/:punkteId', function(req, res, next) {
|
||||||
|
res.status(200).json(req.punkte);
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
|
@ -0,0 +1,49 @@
|
||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
var cors = require('cors');
|
||||||
|
|
||||||
|
const bcrypt = require('bcrypt');
|
||||||
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
|
const DEBUG = true;
|
||||||
|
|
||||||
|
router.param('schuelerId', function(req, res, next, id) {
|
||||||
|
req.schuelerId = id;
|
||||||
|
let query = " Select * from schueler ";
|
||||||
|
query += " WHERE id = $1";
|
||||||
|
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
if(DEBUG) console.log(req.schuelerId);
|
||||||
|
req.db.query(query, [req.schuelerId], (err, rs) => {
|
||||||
|
if (err) {
|
||||||
|
return next(err)
|
||||||
|
}
|
||||||
|
req.schueler = rs.rows[0];
|
||||||
|
next();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
/* GET recepies listing. */
|
||||||
|
router.get('/', function(req, res, next) {
|
||||||
|
let query = " Select * from schueler ";
|
||||||
|
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
req.db.query(query, (err, rs) => {
|
||||||
|
if (err){
|
||||||
|
console.log(query);
|
||||||
|
next(err);
|
||||||
|
} else {
|
||||||
|
let result = {};
|
||||||
|
result['schueler'] = rs.rows;
|
||||||
|
console.log(result);
|
||||||
|
res.status(200).json(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Methods with id */
|
||||||
|
router.get('/:schuelerId', function(req, res, next) {
|
||||||
|
res.status(200).json(req.schueler);
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
|
@ -0,0 +1,51 @@
|
||||||
|
const express = require('express');
|
||||||
|
const router = express.Router();
|
||||||
|
var cors = require('cors');
|
||||||
|
|
||||||
|
const bcrypt = require('bcrypt');
|
||||||
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
|
const DEBUG = true;
|
||||||
|
|
||||||
|
router.param('schuljahrId', function(req, res, next, id) {
|
||||||
|
req.schuljahrId = id;
|
||||||
|
let query = " select * from schueler where id in (SELECT schuelerid from schueler_schuljahr where schuljahrid in (select id from schuljahr where name = $1)); ";
|
||||||
|
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
if(DEBUG) console.log(req.schuljahrId);
|
||||||
|
req.db.query(query, [req.schuljahrId], (err, rs) => {
|
||||||
|
if (err) {
|
||||||
|
return next(err)
|
||||||
|
}
|
||||||
|
req.schuljahr = rs.rows;
|
||||||
|
next();
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
|
/* GET recepies listing. */
|
||||||
|
router.get('/', function(req, res, next) {
|
||||||
|
let query = " select schuljahr.id as id, schuljahr.name, count(*) as schueler from schueler"+
|
||||||
|
" join schueler_schuljahr on schueler_schuljahr.schuelerid = schueler.id"+
|
||||||
|
" join schuljahr on schueler_schuljahr.schuljahrid = schuljahr.id"+
|
||||||
|
" group by schuljahr.id , schuljahr.name";
|
||||||
|
|
||||||
|
if(DEBUG) console.log(query);
|
||||||
|
req.db.query(query, (err, rs) => {
|
||||||
|
if (err){
|
||||||
|
console.log(query);
|
||||||
|
next(err);
|
||||||
|
} else {
|
||||||
|
let result = {};
|
||||||
|
result['schuljahr'] = rs.rows;
|
||||||
|
console.log(result);
|
||||||
|
res.status(200).json(result);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
|
||||||
|
/* Methods with id */
|
||||||
|
router.get('/:schuljahrId', function(req, res, next) {
|
||||||
|
res.status(200).json(req.schuljahr);
|
||||||
|
});
|
||||||
|
|
||||||
|
module.exports = router;
|
Loading…
Reference in New Issue