diff --git a/routes/recepie.js b/routes/recepie.js index b120ece..622df55 100644 --- a/routes/recepie.js +++ b/routes/recepie.js @@ -53,18 +53,24 @@ router.use('/:recepieId/categories/', categoriesRouter); /* GET recepies listing. */ +/* Gesucht wird in Rezept, Zutaten und Beschreibung */ router.get('/', function(req, res, next) { 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 round(avg(wert),1) FROM rezept_wertung WHERE rezept = rezept.id) as rating, "+ - " array_agg(kategorie.name) as categories," + - " array_agg(kategorie.id) as categorieids" + + " (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, "+ + " array_agg(kategorie.name) as categories," + + " array_agg(kategorie.id) as categorieids" + - " FROM rezept JOIN schwierigkeit on schwierigkeit = schwierigkeit.id "+ - " LEFT JOIN rezept_kategorie ON rezept.id = rezept" + - " LEFT JOIN kategorie on kategorie.id = kategorie "; - if(req.query.term) query += " WHERE rezept.name ilike '%"+req.query.term+"%' " - if(req.query.hashtag) query += " WHERE rezept.schluessel ilike '"+req.query.hashtag+"' " + " FROM rezept JOIN schwierigkeit on schwierigkeit = schwierigkeit.id "+ + " LEFT JOIN rezept_kategorie ON rezept.id = rezept" + + " LEFT JOIN kategorie on kategorie.id = kategorie "+ + " WHERE 1 = 1 "; + 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" diff --git a/routes/users.js b/routes/users.js index acb899d..d1842b5 100644 --- a/routes/users.js +++ b/routes/users.js @@ -1,14 +1,14 @@ const express = require('express'); const router = express.Router(); -const DEBUG = false; +const DEBUG = true; router.param('userId', function(req, res, next, id) { req.userId = id; - let query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE id ="+req.userId; - if(isNaN(req.userId)) query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE email ilike '"+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+"'"+" ORDER BY name"; if(DEBUG) console.log(query); req.db.query(query, (err, rs) => { if (err) { @@ -21,7 +21,9 @@ router.param('userId', function(req, res, next, id) { /* GET users listing. */ 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); req.db.query(query, (err, rs) => { if (err){