swd-be/routes/recepieImage.js

126 lines
3.7 KiB
JavaScript

const express = require('express');
const router = express.Router({mergeParams:true});
const multer = require('multer');
const storage = multer.diskStorage({
destination: function(req, file, cb) {
cb(null, './uploads/');
},
filename: function(req, file, cb) {
cb(null, file.filename);
}
})
const fileFilter = (req, file, cb) => {
if (file.mimetype === 'image/jpeg' || file.mimetype === 'image/png') {
cb(null, true);
} else {
cb(null, false);
}
}
const upload = multer({
storage:storage,
limits: {
fileSize: 1024 * 1024 * 2
},
fileFilter:fileFilter
})
const randToken = require('rand-token');
const DEBUG = false;
router.param('categorieId', function(req, res, next, id) {
req.categorieId = id;
let query = " Select rezept_kategorie.id, kategorie, kategorie.name as kategoriename, modifikator, rezept_kategorie.beschreibung "+
" FROM rezept_kategorie "+
" JOIN kategorie on kategorie = kategorie.id"+
" WHERE rezept =$1 AND rezept_kategorie.id = $2";
if(DEBUG) console.log(query);
req.db.query(query, [req.recepieId, req.categorieId], (err, rs) => {
if (err) {
return next(err)
}
req.recepieCategorie = rs.rows[0];
next();
})
});
/* GET recepieCategories listing. */
router.get('/', function(req, res, next) {
let query = " Select rezept_kategorie.id, kategorie, kategorie.name as kategoriename, modifikator, rezept_kategorie.beschreibung "+
" FROM rezept_kategorie "+
" JOIN kategorie on kategorie = kategorie.id"+
" WHERE rezept =$1"+
" ORDER BY modifikator";
if(DEBUG) console.log(query);
req.db.query(query,[req.recepieId], (err, rs) => {
if (err){
next(err);
} else {
let result = {};
result['recepieCategories'] = rs.rows;
if (DEBUG) console.log(result);
res.status(200).json(result);
}
});
});
router.post('/', function(req, res, next) {
let recepieCategorie = req.body.recepieCategories[0];
if(!recepieCategorie.kategorie) {
return res.status(400).send("Wrong Params")
}
if (!recepieCategorie.modifikator) recepieCategorie.modifikator = 1;
let query = "INSERT INTO rezept_kategorie (rezept, kategorie, modifikator, beschreibung) "+
" VALUES ($1, $2, $3, $4)" +
" returning *";
let values = [req.recepieId, recepieCategorie.kategorie, recepieCategorie.modifikator, recepieCategorie.beschreibung];
if(DEBUG) console.log(query);
req.db.query(query, values, (err, rs) => {
if (err){
next(err);
} else {
let result = {};
result['recepieCategories'] = rs.rows[0];
res.status(200).json(result);
}
});
});
/* Methods with id */
router.get('/:categorieId', function(req, res, next) {
res.status(200).json(req.recepieCategorie);
});
router.put('/:categorieId', function(req, res, next) {
let recepieCategorie = req.body.recepieCategories[0];
let query = "UPDATE rezept_kategorie set kategorie = $1, modifikator =$2, beschreibung =$3"+
" WHERE id = "+req.categorieId +
" returning *";
let values = [recepieCategorie.kategorie, recepieCategorie.modifikator, recepieCategorie.beschreibung];
if(DEBUG) console.log(query);
req.db.query(query, values, (err, rs) => {
if (err){
next(err);
} else {
let result = {};
result['recepieCategories'] = rs.rows[0];
res.status(200).json(result);
}
});
});
router.delete('/:categorieId', function(req, res, next) {
let query = "DELETE FROM rezept_kategorie where id = $1;";
req.db.query(query, [req.categorieId], (err, rs) => {
if (err) next(err)
});
res.status(204).send();
});
module.exports = router;