swd-be/routes/recepieVote.js

61 lines
1.5 KiB
JavaScript

const express = require('express');
const router = express.Router({mergeParams:true});
const randToken = require('rand-token');
const DEBUG = true;
/* GET recepieVotes listing. */
router.get('/', function(req, res, next) {
let query = "SELECT avg(wert) as wertung FROM rezept_wertung WHERE rezept = $1";
let values = [req.recepieId];
req.db.query(query, values, (err, rs) => {
if (err){
next(err);
} else {
let result = {};
result['recepieVotes'] = rs.rows[0];
res.status(200).json(result);
}
});
});
router.post('/', function(req, res, next) {
let recepieVote = req.body.recepieVote;
if(!recepieVote.wert) {
return res.status(400).send("Wrong Params")
}
if (!recepieVote.nutzer) recepieVote.nutzer = 0;
let query = "INSERT INTO rezept_wertung (rezept, wertungkategorie, nutzer, wert, beschreibung) "+
" VALUES ($1, (SELECT id from wertungkategorie where schluessel = 'sum'), $2, $3, $4)";
let values = [req.recepieId, recepieVote.nutzer, recepieVote.wert, recepieVote.beschreibung];
if(DEBUG) console.log(query);
req.db.query(query, values, (err, rs) => {
if (err) {
next(err);
} else {
query = "SELECT avg(wert) as rating FROM rezept_wertung WHERE rezept = $1";
values = [req.recepieId];
req.db.query(query, values, (err, rs) => {
if (err){
next(err);
} else {
let result = {};
result = rs.rows[0];
res.status(200).json(result);
}
});
}
});
});
module.exports = router;