Update API for COPY Recepie

This commit is contained in:
Thomas Mack 2019-01-06 07:23:17 +01:00
parent eceff163a9
commit d8d9d54679
3 changed files with 70 additions and 5 deletions

6
app.js
View File

@ -21,7 +21,11 @@ var app = express();
app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'pug');
app.use(cors());
// Settin Cors Options
var corsOptions = {
methods: ['GET', 'PUT', 'POST', 'DELETE', 'COPY']
}
app.use(cors(corsOptions));
app.use(logger('dev'));
app.use(express.json());
app.use(express.urlencoded({ extended: false }));

View File

@ -1,5 +1,7 @@
const express = require('express');
const router = express.Router();
var cors = require('cors');
const bcrypt = require('bcrypt');
const randToken = require('rand-token');
@ -91,9 +93,19 @@ router.post('/', function(req, res, next) {
let result = {};
result['recepies'] = rs.rows[0];
req.db.query("INSERT into rezept_dauer (rezept, sort, name, dauer) VALUES ($1, 1, 'Zubereitung', '30m')", [rs.rows[0].id], (err, rs) => {});
req.db.query("INSERT into rezept_wertung (nutzer, rezept, wert, wertungskategorie) VALUES ($1, $2, 5, (SELECT id FROM wertungskategorie WHERE schluessel = 'sum'))", [rs.rows[0].nutzer, rs.rows[0].id], (err, rs) => {});
req.db.query("INSERT into rezept_schitt (rezept, sort, name, beschreibung) VALUES ($1, 1, 'Zubreitung', 'Mit Sherry ablöschen, Sahne hinzugeben und Parmesan reiben.')", [rs.rows[0].id], (err, rs) => {});
let querys = [
"INSERT into rezept_dauer (rezept, sort, name, dauer) VALUES ($1, 1, 'Zubereitung', '30m')",
"INSERT into rezept_wertung (nutzer, rezept, wert, wertungkategorie) VALUES ($1, $2, 5, (SELECT id FROM wertungkategorie WHERE schluessel = 'sum'))",
"INSERT into rezept_schritt (rezept, sort, name, beschreibung) VALUES ($1, 1, 'Zubereitung', 'Mit Sherry ablöschen, Sahne hinzugeben und Parmesan reiben.')"
];
console.log(querys[0],rs.rows[0].id);
console.log(querys[1],[rs.rows[0].nutzer, rs.rows[0].id]);
console.log(querys[2],rs.rows[0].id);
req.db.query(querys[0], [rs.rows[0].id], (err, rs) => {});
req.db.query(querys[1], [rs.rows[0].nutzer, rs.rows[0].id], (err, rs) => {});
req.db.query(querys[2], [rs.rows[0].id], (err, rs) => {});
res.status(200).json(result);
@ -106,6 +118,54 @@ router.get('/:recepieId', function(req, res, next) {
res.status(200).json(req.recepie);
});
router.options('/:recepieId', cors())
router.copy('/:recepieId', cors(), function(req, res, next) {
let recepie = req.recepie;
if(!recepie.schluessel) recepie.schluessel = randToken.uid(8);
if(!recepie.schwierigkeit || !recepie.name || !recepie.nutzer) {
return res.status(400).send("Wrong Params")
}
let query = "INSERT INTO rezept (nutzer, name, schluessel, schwierigkeit, portionen, beschreibung) "+
" VALUES ($1, $2, $3, $4, $5, $6)" +
" returning *";
let values = [recepie.nutzer, recepie.name+"Kopie", recepie.schluessel+"-kopie", recepie.schwierigkeit, recepie.portionen, recepie.beschreibung];
if(DEBUG) console.log(query);
req.db.query(query, values, (err, rs) => {
if(err && err.constraint && err.constraint ==='idx_rezept_email') {
return res.status(409).send("Recipie Key already in use");
} else if (err){
next(err);
} else {
let result = {};
result['recepies'] = rs.rows[0];
let querys = [
"INSERT into rezept_dauer (rezept, sort, name, dauer, beschreibung) SELECT $2, sort, name, dauer, beschreibung FROM rezept_dauer where rezept = $1",
"INSERT into rezept_zutat (rezept, zutat, einheit, menge, beschreibung) SELECT $2, zutat, einheit, menge, beschreibung FROM rezept_zutat WHERE rezept = $1",
"INSERT into rezept_geraet (rezept, geraet, einheit, menge, beschreibung) SELECT $2, geraet, einheit, menge, beschreibung FROM rezept_geraet WHERE rezept = $1",
"INSERT into rezept_schritt (rezept, sort, name, beschreibung) SELECT $2, sort, name, beschreibung FROM rezept_schritt where rezept = $1"
];
console.log(querys[0],recepie.id);
console.log(querys[1],recepie.id);
console.log(querys[2],recepie.id);
console.log(querys[3],recepie.id);
req.db.query(querys[0], [recepie.id, rs.rows[0].id], (err, rs) => {});
req.db.query(querys[1], [recepie.id, rs.rows[0].id], (err, rs) => {});
req.db.query(querys[2], [recepie.id, rs.rows[0].id], (err, rs) => {});
req.db.query(querys[3], [recepie.id, rs.rows[0].id], (err, rs) => {});
res.status(200).json(result);
}
});
});
router.put('/:recepieId', function(req, res, next) {
let recepie = req.body.recepies;
let query = "UPDATE rezept set name = '"+recepie.name+

View File

@ -25,7 +25,8 @@ router.param('stepId', function(req, res, next, id) {
router.get('/', function(req, res, next) {
let query = " Select rezept_schritt.id, name, sort, beschreibung "+
" FROM rezept_schritt "+
" WHERE rezept =$1";
" WHERE rezept =$1"+
" ORDER BY sort";
if(DEBUG) console.log(query);
req.db.query(query,[req.recepieId], (err, rs) => {
if (err){