Compare commits
3 Commits
master
...
featureUse
Author | SHA1 | Date |
---|---|---|
|
bce75f1948 | |
|
72e9e16de3 | |
|
3db7d0d0f0 |
|
@ -1 +1,2 @@
|
||||||
node_modules
|
node_modules
|
||||||
|
.idea
|
||||||
|
|
41
app.js
41
app.js
|
@ -3,7 +3,6 @@ var express = require('express');
|
||||||
var path = require('path');
|
var path = require('path');
|
||||||
var logger = require('morgan');
|
var logger = require('morgan');
|
||||||
var cors = require('cors');
|
var cors = require('cors');
|
||||||
var sassMiddleware = require('node-sass-middleware');
|
|
||||||
|
|
||||||
var xml = require('xml');
|
var xml = require('xml');
|
||||||
|
|
||||||
|
@ -18,14 +17,9 @@ const dbhog = require('./dbhog')
|
||||||
const PORT = process.env.PORT || 4000;
|
const PORT = process.env.PORT || 4000;
|
||||||
|
|
||||||
var indexRouter = require('./routes/index');
|
var indexRouter = require('./routes/index');
|
||||||
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 userRouter = require('./routes/users');
|
||||||
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();
|
||||||
|
@ -40,27 +34,9 @@ var corsOptions = {
|
||||||
}
|
}
|
||||||
app.use(cors(corsOptions));
|
app.use(cors(corsOptions));
|
||||||
|
|
||||||
// Setting up passport
|
|
||||||
|
|
||||||
/*passport.use(
|
|
||||||
new LocalStrategy(
|
|
||||||
function(username, password, done) {
|
|
||||||
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
);
|
|
||||||
*/
|
|
||||||
|
|
||||||
app.use(logger('dev'));
|
app.use(logger('dev'));
|
||||||
app.use(express.json());
|
app.use(express.json());
|
||||||
app.use(express.urlencoded({ extended: false }));
|
app.use(express.urlencoded({ extended: false }));
|
||||||
app.use(sassMiddleware({
|
|
||||||
src: path.join(__dirname, 'public'),
|
|
||||||
dest: path.join(__dirname, 'public'),
|
|
||||||
indentedSyntax: true, // true = .sass and false = .scss
|
|
||||||
sourceMap: true
|
|
||||||
}));
|
|
||||||
app.use(express.static(path.join(__dirname, 'public')));
|
app.use(express.static(path.join(__dirname, 'public')));
|
||||||
|
|
||||||
app.use('/', (req, res, next ) => {
|
app.use('/', (req, res, next ) => {
|
||||||
|
@ -68,23 +44,10 @@ 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('/wl', valuelistRouter);
|
app.use('/wl', valuelistRouter);
|
||||||
app.use('/recepies', recepieRouter);
|
app.use('/recepies', recepieRouter);
|
||||||
|
app.use('/users', userRouter);
|
||||||
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) {
|
||||||
next(createError(404));
|
next(createError(404));
|
||||||
|
|
File diff suppressed because it is too large
Load Diff
35
package.json
35
package.json
|
@ -8,33 +8,16 @@
|
||||||
"start": "node ./bin/www"
|
"start": "node ./bin/www"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"bcrypt": "^3.0.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": "^4.3.3",
|
||||||
"express": "~4.16.0",
|
"express": "^4.17.2",
|
||||||
"express-session": "^1.15.6",
|
"express-session": "^1.17.2",
|
||||||
"http-errors": "~1.6.2",
|
"http-errors": "^2.0.0",
|
||||||
"morgan": "~1.9.0",
|
"morgan": "^1.10.0",
|
||||||
"node-sass-middleware": "0.11.0",
|
"nodemon": "^2.0.15",
|
||||||
"passport-local": "^1.0.0",
|
"pg": "^8.7.3",
|
||||||
"pg": "^7.7.1",
|
"pug": "^3.0.2",
|
||||||
"pug": "2.0.0-beta11",
|
"rand-token": "^1.0.1",
|
||||||
"rand-token": "^0.4.0",
|
|
||||||
"react": "^16.7.0",
|
|
||||||
"react-dom": "^15.6.1",
|
|
||||||
"react-router-dom": "^4.2.2",
|
|
||||||
"whatwg-fetch": "^3.0.0",
|
|
||||||
"xml": "^1.0.1"
|
"xml": "^1.0.1"
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"babel": "^6.23.0",
|
|
||||||
"babel-core": "^6.26.0",
|
|
||||||
"babel-loader": "^7.1.2",
|
|
||||||
"babel-preset-es2015": "^6.24.1",
|
|
||||||
"babel-preset-react": "^6.24.1",
|
|
||||||
"babel-preset-stage-2": "^6.24.1",
|
|
||||||
"webpack": "^3.5.5"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,7 +3,6 @@ const router = express.Router();
|
||||||
var cors = require('cors');
|
var cors = require('cors');
|
||||||
|
|
||||||
|
|
||||||
const bcrypt = require('bcrypt');
|
|
||||||
const randToken = require('rand-token');
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
const ingredientsRouter = require('./recepieIngredients');
|
const ingredientsRouter = require('./recepieIngredients');
|
||||||
|
@ -54,18 +53,24 @@ router.use('/:recepieId/categories/', categoriesRouter);
|
||||||
|
|
||||||
|
|
||||||
/* GET recepies listing. */
|
/* GET recepies listing. */
|
||||||
|
/* Gesucht wird in Rezept, Zutaten und Beschreibung */
|
||||||
router.get('/', function(req, res, next) {
|
router.get('/', function(req, res, next) {
|
||||||
let query = " Select rezept.id, rezept.schluessel, schwierigkeit, schwierigkeit.name as schwierigkeitName, rezept.name, portionen, nutzer, rezept.beschreibung, "+
|
let query = " Select rezept.id, rezept.schluessel, schwierigkeit, schwierigkeit.name as schwierigkeitName, rezept.name, portionen, nutzer, rezept.beschreibung, "+
|
||||||
" (SELECT sum(dauer) FROM rezept_dauer WHERE rezept = rezept.id) as overall_duration, "+
|
" (SELECT sum(dauer) FROM rezept_dauer WHERE rezept = rezept.id) as overall_duration, "+
|
||||||
" (SELECT round(avg(wert),1) FROM rezept_wertung WHERE rezept = rezept.id) as rating, "+
|
" (SELECT round(avg(wert),1) FROM rezept_wertung WHERE rezept = rezept.id) as rating, "+
|
||||||
" array_agg(kategorie.name) as categories," +
|
" array_agg(kategorie.name) as categories," +
|
||||||
" array_agg(kategorie.id) as categorieids" +
|
" array_agg(kategorie.id) as categorieids" +
|
||||||
|
|
||||||
" FROM rezept JOIN schwierigkeit on schwierigkeit = schwierigkeit.id "+
|
" FROM rezept JOIN schwierigkeit on schwierigkeit = schwierigkeit.id "+
|
||||||
" LEFT JOIN rezept_kategorie ON rezept.id = rezept" +
|
" LEFT JOIN rezept_kategorie ON rezept.id = rezept" +
|
||||||
" LEFT JOIN kategorie on kategorie.id = kategorie ";
|
" LEFT JOIN kategorie on kategorie.id = kategorie "+
|
||||||
if(req.query.term) query += " WHERE rezept.name ilike '%"+req.query.term+"%' "
|
" WHERE 1 = 1 ";
|
||||||
if(req.query.hashtag) query += " WHERE rezept.schluessel ilike '"+req.query.hashtag+"' "
|
if(req.query.term) query += " AND (rezept.name ilike '%"+req.query.term+
|
||||||
|
"%' OR rezept.beschreibung ilike '%"+req.query.term+"%' "+
|
||||||
|
" OR rezept.id in (select rezept from rezept_zutat where zutat in (select id from zutat where name ilike '%"+req.query.term+"%')))";
|
||||||
|
if(req.query.hashtag) query += " AND rezept.schluessel ilike '"+req.query.hashtag+"' "
|
||||||
|
if(req.query.cat) query += " AND kategorie.id IN ("+req.query.cat+")"
|
||||||
|
if(req.query.usr) query += " AND nutzer IN ("+req.query.usr+")"
|
||||||
|
|
||||||
query += " GROUP BY 1,2,3,4,5,6,7"
|
query += " GROUP BY 1,2,3,4,5,6,7"
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router({mergeParams:true});
|
const router = express.Router({mergeParams:true});
|
||||||
|
|
||||||
const bcrypt = require('bcrypt');
|
|
||||||
const randToken = require('rand-token');
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
const DEBUG = false;
|
const DEBUG = false;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router({mergeParams:true});
|
const router = express.Router({mergeParams:true});
|
||||||
|
|
||||||
const bcrypt = require('bcrypt');
|
|
||||||
const randToken = require('rand-token');
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
const DEBUG = false;
|
const DEBUG = false;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router({mergeParams:true});
|
const router = express.Router({mergeParams:true});
|
||||||
|
|
||||||
const bcrypt = require('bcrypt');
|
|
||||||
const randToken = require('rand-token');
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
const DEBUG = false;
|
const DEBUG = false;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router({mergeParams:true});
|
const router = express.Router({mergeParams:true});
|
||||||
|
|
||||||
const bcrypt = require('bcrypt');
|
|
||||||
const randToken = require('rand-token');
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
const DEBUG = false;
|
const DEBUG = false;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router({mergeParams:true});
|
const router = express.Router({mergeParams:true});
|
||||||
|
|
||||||
const bcrypt = require('bcrypt');
|
|
||||||
const randToken = require('rand-token');
|
const randToken = require('rand-token');
|
||||||
|
|
||||||
const DEBUG = false;
|
const DEBUG = false;
|
||||||
|
|
|
@ -1,16 +1,14 @@
|
||||||
const express = require('express');
|
const express = require('express');
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
const bcrypt = require('bcrypt');
|
const DEBUG = true;
|
||||||
|
|
||||||
const DEBUG = false;
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
router.param('userId', function(req, res, next, id) {
|
router.param('userId', function(req, res, next, id) {
|
||||||
req.userId = id;
|
req.userId = id;
|
||||||
let query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE id ="+req.userId;
|
let query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE id ="+req.userId+" ORDER BY name";
|
||||||
if(isNaN(req.userId)) query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE email ilike '"+req.userId+"'";
|
if(isNaN(req.userId)) query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE email ilike '"+req.userId+"'"+" ORDER BY name";
|
||||||
if(DEBUG) console.log(query);
|
if(DEBUG) console.log(query);
|
||||||
req.db.query(query, (err, rs) => {
|
req.db.query(query, (err, rs) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
|
@ -23,7 +21,9 @@ router.param('userId', function(req, res, next, id) {
|
||||||
|
|
||||||
/* GET users listing. */
|
/* GET users listing. */
|
||||||
router.get('/', function(req, res, next) {
|
router.get('/', function(req, res, next) {
|
||||||
let query = "Select id, name, email, beschreibung FROM nutzer ";
|
let query = "Select id, name, email, beschreibung FROM nutzer ORDER BY name";
|
||||||
|
if(!isNaN(req.query.active) && req.query.active==1) query = "Select id, name, email, beschreibung FROM nutzer where id in (select nutzer from rezept) ORDER BY name";
|
||||||
|
if(DEBUG) console.log("Request", req.query.active);
|
||||||
if(DEBUG) console.log(query);
|
if(DEBUG) console.log(query);
|
||||||
req.db.query(query, (err, rs) => {
|
req.db.query(query, (err, rs) => {
|
||||||
if (err){
|
if (err){
|
||||||
|
@ -39,7 +39,7 @@ router.get('/', function(req, res, next) {
|
||||||
|
|
||||||
router.post('/', function(req, res, next) {
|
router.post('/', function(req, res, next) {
|
||||||
let user = req.body.users[0];
|
let user = req.body.users[0];
|
||||||
bcrypt.hash(user.kennwort, 10, function(err, hash) {
|
|
||||||
let query = "INSERT INTO nutzer ( name, email, kennwort, beschreibung) "+
|
let query = "INSERT INTO nutzer ( name, email, kennwort, beschreibung) "+
|
||||||
" VALUES ('"+user.name+"','"+user.email+"','"+hash+"','"+user.beschreibung+"')" +
|
" VALUES ('"+user.name+"','"+user.email+"','"+hash+"','"+user.beschreibung+"')" +
|
||||||
" returning *";
|
" returning *";
|
||||||
|
@ -61,45 +61,10 @@ router.post('/', function(req, res, next) {
|
||||||
res.status(200).json(result);
|
res.status(200).json(result);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
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 = {};
|
||||||
|
@ -136,47 +101,6 @@ router.put('/:userId', function(req, res, next) {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:userId/changepasswd', function(req, res, next) {
|
|
||||||
let user = req.body.users[0];
|
|
||||||
|
|
||||||
let oldPasswd = req.body.users[0]['oldPasswd'];
|
|
||||||
let newPasswd = req.body.users[0]['newPasswd'];
|
|
||||||
|
|
||||||
if(!oldPasswd || !newPasswd) {
|
|
||||||
return res.status(400).send("Wrong Params");
|
|
||||||
}
|
|
||||||
|
|
||||||
bcrypt.compare(oldPasswd, req.user.kennwort, function(err, checkResult) {
|
|
||||||
console.log("Compare: "+oldPasswd+" WITH "+req.user.kennwort+" Result:");
|
|
||||||
console.log(checkResult);
|
|
||||||
if(checkResult) {
|
|
||||||
bcrypt.hash(newPasswd, 10, function(err, hash) {
|
|
||||||
let query = "UPDATE nutzer set kennwort = '"+hash+"'"+
|
|
||||||
" WHERE id = "+req.userId +
|
|
||||||
" returning *";
|
|
||||||
req.db.query(query, (err, rs) => {
|
|
||||||
if (err){
|
|
||||||
next(err);
|
|
||||||
} else {
|
|
||||||
let result = {};
|
|
||||||
let user = {};
|
|
||||||
user['name'] = rs.rows[0].name;
|
|
||||||
user['email'] = rs.rows[0].email;
|
|
||||||
user['id'] = rs.rows[0].id;
|
|
||||||
user['beschreibung'] = rs.rows[0].beschreibung;
|
|
||||||
result['users'] = user;
|
|
||||||
console.log(result);
|
|
||||||
res.status(200).json(result);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
console.log(err);
|
|
||||||
res.status(409).send("Old Passwd didn't match");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue