Compare commits
13 Commits
master
...
hogintegra
Author | SHA1 | Date |
---|---|---|
|
50e14b5f05 | |
|
86c108e2d8 | |
|
86ac2f7ec8 | |
|
482b476831 | |
|
ebc97b5470 | |
|
6fa98c8d6c | |
|
e14315f9c5 | |
|
086eec1e03 | |
|
4666b56102 | |
|
9914cb4a40 | |
|
3c95a9c2f3 | |
|
19fc6f0fce | |
|
ab219363b2 |
|
@ -1 +1,2 @@
|
|||
node_modules
|
||||
uploads
|
||||
|
|
31
app.js
31
app.js
|
@ -3,7 +3,6 @@ var express = require('express');
|
|||
var path = require('path');
|
||||
var logger = require('morgan');
|
||||
var cors = require('cors');
|
||||
var sassMiddleware = require('node-sass-middleware');
|
||||
|
||||
var xml = require('xml');
|
||||
|
||||
|
@ -17,8 +16,9 @@ const dbhog = require('./dbhog')
|
|||
|
||||
const PORT = process.env.PORT || 4000;
|
||||
|
||||
var userRouter = require('./routes/users');
|
||||
|
||||
var indexRouter = require('./routes/index');
|
||||
var usersRouter = require('./routes/users');
|
||||
var valuelistRouter = require('./routes/valuelist');
|
||||
var recepieRouter = require('./routes/recepie');
|
||||
var personRouter = require('./routes/v1/person');
|
||||
|
@ -39,44 +39,26 @@ var corsOptions = {
|
|||
methods: ['GET', 'PUT', 'POST', 'DELETE', 'COPY']
|
||||
}
|
||||
app.use(cors(corsOptions));
|
||||
|
||||
// Setting up passport
|
||||
|
||||
/*passport.use(
|
||||
new LocalStrategy(
|
||||
function(username, password, done) {
|
||||
|
||||
}
|
||||
);
|
||||
|
||||
);
|
||||
*/
|
||||
|
||||
app.use(logger('dev'));
|
||||
app.use(express.json());
|
||||
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('/', (req, res, next ) => {
|
||||
req.db = db;
|
||||
next();
|
||||
})
|
||||
});
|
||||
|
||||
app.use('/api/v1', (req, res, next ) => {
|
||||
req.db = dbhog;
|
||||
next();
|
||||
})
|
||||
});
|
||||
|
||||
app.use('/', indexRouter);
|
||||
app.use('/users', usersRouter);
|
||||
app.use('/wl', valuelistRouter);
|
||||
app.use('/vl', valuelistRouter);
|
||||
app.use('/recepies', recepieRouter);
|
||||
app.use('/users', userRouter);
|
||||
|
||||
app.use('/api/v1/person', personRouter);
|
||||
app.use('/api/v1/schueler', schuelerRouter);
|
||||
|
@ -85,6 +67,7 @@ app.use('/api/v1/punkte', punkteRouter);
|
|||
app.use('/api/v1/haus', hausRouter);
|
||||
|
||||
|
||||
|
||||
// catch 404 and forward to error handler
|
||||
app.use(function(req, res, next) {
|
||||
next(createError(404));
|
||||
|
|
66
db/index.js
66
db/index.js
|
@ -18,7 +18,7 @@ const query = function (text, params, callback) {
|
|||
return pool.query(text, params, (err, res) => {
|
||||
const duration = Date.now() - start;
|
||||
//if(res)
|
||||
console.log('executed query', { text, duration})
|
||||
if(DEBUG) console.log('executed query', { text, duration})
|
||||
callback(err, res)
|
||||
})
|
||||
}
|
||||
|
@ -32,32 +32,38 @@ const dataStructure = {
|
|||
|
||||
categories: {
|
||||
tableName: "kategorie",
|
||||
jsonName: "categories"
|
||||
jsonName: "categories",
|
||||
displayName: "Kategorien"
|
||||
},
|
||||
|
||||
units: {
|
||||
tableName: "einheit",
|
||||
jsonName: "units"
|
||||
jsonName: "units",
|
||||
displayName: "Einheiten"
|
||||
},
|
||||
|
||||
tools: {
|
||||
tableName: "geraet",
|
||||
jsonName: "tools"
|
||||
jsonName: "tools",
|
||||
displayName: "Geräte und Sonstiges"
|
||||
},
|
||||
|
||||
difficulties: {
|
||||
tableName: "schwierigkeit",
|
||||
jsonName: "difficulties"
|
||||
jsonName: "difficulties",
|
||||
displayName: "Schwierigkeit"
|
||||
},
|
||||
|
||||
ingredients: {
|
||||
tableName: "zutat",
|
||||
jsonName: "ingredients"
|
||||
jsonName: "ingredients",
|
||||
displayName: "Zutaten"
|
||||
},
|
||||
|
||||
ratingcategories: {
|
||||
tableName: "wertungkategorie",
|
||||
jsonName: "ratingcategories"
|
||||
jsonName: "ratingcategories",
|
||||
displayName: "Wertungskategorien"
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -99,7 +105,14 @@ const updateNameKeyObject = function(req, res, next) {
|
|||
if(DEBUG) console.log("Update Valuelist");
|
||||
let structure = getStructure(req);
|
||||
if(DEBUG) console.log(req.body[structure.jsonName]);
|
||||
let obj = req.body[structure.jsonName][0];
|
||||
let obj = req.body['item'];
|
||||
if(req.body[structure.jsonName]) {
|
||||
obj = req.body[structure.jsonName][0];
|
||||
}
|
||||
if(!obj.beschreibung) {
|
||||
obj.beschreibung = "";
|
||||
}
|
||||
|
||||
let query = "UPDATE "+structure.tableName+
|
||||
" set schluessel = '"+obj.schluessel+
|
||||
"', name = '"+obj.name+
|
||||
|
@ -134,7 +147,7 @@ const insertNameKeyObject = function(req, res, next) {
|
|||
} else {
|
||||
let result = {};
|
||||
result[structure['jsonName']] = rs.rows;
|
||||
console.log(result);
|
||||
if(DEBUG) console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
@ -148,6 +161,15 @@ const getStructure = function(req) {
|
|||
|
||||
}
|
||||
|
||||
const getDataStructure = function(req, res, next) {
|
||||
let structure = dataStructure;
|
||||
res.status(200).json(structure);
|
||||
return structure;
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
const getAllFromTable = function(req, res, next) {
|
||||
|
||||
let structure = getStructure(req);
|
||||
|
@ -168,6 +190,28 @@ const getAllFromTable = function(req, res, next) {
|
|||
})
|
||||
}
|
||||
|
||||
|
||||
const getItemFromTable = function(req, res, next) {
|
||||
|
||||
let structure = getStructure(req);
|
||||
if(DEBUG) {
|
||||
console.log("Found Structure-Object for WL-Item: ");
|
||||
console.log(structure);
|
||||
console.log(structure['tableName']);
|
||||
}
|
||||
if(structure === undefined) return res.status(404).send();
|
||||
pool.query(selectItemFromTable(structure['tableName'], req.itemId), (err, rs) => {
|
||||
if(err) next(err)
|
||||
else {
|
||||
if(DEBUG) console.log(res);
|
||||
let result = {};
|
||||
result = rs.rows[0];
|
||||
console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
const getUserByEmail = function(username) {
|
||||
let query = "Select id, name, email, kennwort, beschreibung FROM nutzer WHERE email ilike '"+username+"'";
|
||||
if(DEBUG) console.log(query);
|
||||
|
@ -189,6 +233,8 @@ module.exports = {
|
|||
insertNameKeyObject,
|
||||
deleteNameKeyObject,
|
||||
getAllFromTable,
|
||||
getItemFromTable,
|
||||
getUserByEmail,
|
||||
getStructure
|
||||
getStructure,
|
||||
getDataStructure
|
||||
};
|
||||
|
|
116
index.js
116
index.js
|
@ -1,116 +0,0 @@
|
|||
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const pg = require('pg');
|
||||
const path = require('path');
|
||||
const { Pool } = require('pg');
|
||||
const pool = new Pool({
|
||||
user: 'postgres',
|
||||
host: 'localhost',
|
||||
database: 'hogwarts',
|
||||
password: 'postgres',
|
||||
port: 5432
|
||||
});
|
||||
|
||||
|
||||
pool.on('error', (err, client) => {
|
||||
console.error('Unexpected error on idle client', err)
|
||||
process.exit(-1)
|
||||
});
|
||||
|
||||
router.use(function(req, res, next) {
|
||||
res.header("Access-Control-Allow-Origin", "*");
|
||||
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
|
||||
next();
|
||||
});
|
||||
|
||||
/* GET home page. */
|
||||
router.get('/', function(req, res, next) {
|
||||
res.render('index', { title: 'Express' });
|
||||
});
|
||||
|
||||
|
||||
router.get('/api/v1/person', function(req, res, next) {
|
||||
const results = [];
|
||||
pool.connect((err, client, done) => {
|
||||
if (err) throw err
|
||||
client.query('SELECT * FROM v_person ORDER BY name ASC;', (err, rs) => {
|
||||
|
||||
for(var i= 0; i<rs.rows.length; i++) {
|
||||
results.push(rs.rows[i]);
|
||||
}
|
||||
console.log(err, rs);
|
||||
done();
|
||||
return res.json(results);
|
||||
|
||||
});
|
||||
//done();
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
router.get('/api/v1/person/:person_id', function(req, res, next) {
|
||||
const results = [];
|
||||
const id = req.params.person_id;
|
||||
|
||||
pool.connect((err, client, done) => {
|
||||
if (err) throw err
|
||||
client.query('SELECT * FROM v_person WHERE id = $1;',[id], (err, rs) => {
|
||||
|
||||
for(var i= 0; i<rs.rows.length; i++) {
|
||||
results.push(rs.rows[i]);
|
||||
}
|
||||
console.log(err, rs);
|
||||
done();
|
||||
return res.json(results);
|
||||
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
router.get('/api/v1/schuljahr', function(req, res, next) {
|
||||
const results = [];
|
||||
pool.connect((err, client, done) => {
|
||||
if (err) throw err
|
||||
client.query('SELECT * FROM schuljahr ORDER BY von ASC;', (err, rs) => {
|
||||
|
||||
for(var i= 0; i<rs.rows.length; i++) {
|
||||
results.push(rs.rows[i]);
|
||||
}
|
||||
console.log(err, rs);
|
||||
done();
|
||||
return res.json(results);
|
||||
|
||||
});
|
||||
//done();
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
router.get('/api/v1/punkte/:schuljahr', function(req, res, next) {
|
||||
const results = [];
|
||||
const id = req.params.schuljahr;
|
||||
const group = req.query.group;
|
||||
|
||||
var queryString = 'SELECT * FROM v_hauspunkte_small WHERE schuljahr = $1;';
|
||||
|
||||
if(group==1) queryString = 'SELECT schuljahr, haus, sum(punkte) FROM v_hauspunkte WHERE schuljahr = $1 GROUP BY schuljahr, haus;'
|
||||
|
||||
pool.connect((err, client, done) => {
|
||||
if (err) throw err
|
||||
client.query(queryString,[id], (err, rs) => {
|
||||
|
||||
for(var i= 0; i<rs.rows.length; i++) {
|
||||
results.push(rs.rows[i]);
|
||||
}
|
||||
console.log(err, rs);
|
||||
done();
|
||||
return res.json(results);
|
||||
|
||||
});
|
||||
})
|
||||
});
|
||||
|
||||
|
||||
module.exports = router;
|
53
migration.js
53
migration.js
|
@ -7,7 +7,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS zutat" +
|
|||
" schluessel text NOT NULL," +
|
||||
" name text NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS einheit" +
|
||||
|
@ -16,7 +16,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS einheit" +
|
|||
" schluessel text NOT NULL," +
|
||||
" name text NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS geraet" +
|
||||
|
@ -25,7 +25,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS geraet" +
|
|||
" schluessel text NOT NULL," +
|
||||
" name text NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS kategorie" +
|
||||
|
@ -34,7 +34,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS kategorie" +
|
|||
" schluessel text NOT NULL," +
|
||||
" name text NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS wertungkategorie" +
|
||||
|
@ -43,7 +43,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS wertungkategorie" +
|
|||
" schluessel text NOT NULL," +
|
||||
" name text NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS schwierigkeit" +
|
||||
|
@ -52,7 +52,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS schwierigkeit" +
|
|||
" schluessel text NOT NULL," +
|
||||
" name text NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS rezept" +
|
||||
|
@ -64,7 +64,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS rezept" +
|
|||
" portionen NUMERIC NOT NULL DEFAULT 4.0," +
|
||||
" nutzer bigint NOT NULL REFERENCES nutzer(id)," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_dauer" +
|
||||
|
@ -75,7 +75,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS rezept_dauer" +
|
|||
" name text NOT NULL," +
|
||||
" sort INT NOT NULL DEFAULT 0," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_zutat" +
|
||||
|
@ -86,7 +86,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS rezept_zutat" +
|
|||
" zutat bigint NOT NULL REFERENCES zutat(id)," +
|
||||
" menge NUMERIC," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_geraet" +
|
||||
|
@ -97,7 +97,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS rezept_geraet" +
|
|||
" geraet bigint NOT NULL REFERENCES geraet(id)," +
|
||||
" menge NUMERIC," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_schritt" +
|
||||
|
@ -107,7 +107,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS rezept_schritt" +
|
|||
" sort INT NOT NULL DEFAULT 0," +
|
||||
" name text NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_kategorie" +
|
||||
|
@ -117,7 +117,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS rezept_kategorie" +
|
|||
" kategorie bigint NOT NULL REFERENCES kategorie(id)," +
|
||||
" modifikator NUMERIC NOT NULL DEFAULT 1," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS nutzer" +
|
||||
|
@ -127,7 +127,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS nutzer" +
|
|||
" email text NOT NULL," +
|
||||
" kennwort text NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS rolle" +
|
||||
|
@ -136,7 +136,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS rolle" +
|
|||
" schluessel text NOT NULL," +
|
||||
" name text NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS nutzer_rolle" +
|
||||
|
@ -145,7 +145,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS nutzer_rolle" +
|
|||
" nutzer bigint NOT NULL REFERENCES nutzer(id)," +
|
||||
" rolle bigint NOT NULL REFERENCES rolle(id)," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS nutzer_favorit" +
|
||||
|
@ -154,7 +154,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS nutzer_favorit" +
|
|||
" nutzer bigint NOT NULL REFERENCES nutzer(id)," +
|
||||
" rezept bigint NOT NULL REFERENCES rezept(id)," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_wertung" +
|
||||
|
@ -165,7 +165,7 @@ db.run("CREATE TABLE" +" IF NOT EXISTS rezept_wertung" +
|
|||
" wertungkategorie bigint NOT NULL REFERENCES wertungkategorie(id)," +
|
||||
" wert INTEGER NOT NULL DEFAULT 5," +
|
||||
" beschreibung text" +
|
||||
" );" +
|
||||
" );"
|
||||
|
||||
);
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS nutzer_kommentar" +
|
||||
|
@ -175,17 +175,26 @@ db.run("CREATE TABLE" +" IF NOT EXISTS nutzer_kommentar" +
|
|||
" relation text NOT NULL," +
|
||||
" relation_id bigint NOT NULL," +
|
||||
" beschreibung text" +
|
||||
" );"
|
||||
);
|
||||
|
||||
db.run("CREATE TABLE" +" IF NOT EXISTS rezept_image" +
|
||||
" (" +
|
||||
" id bigserial PRIMARY KEY," +
|
||||
" rezept bigint NOT NULL REFERENCES rezept(id)," +
|
||||
" pfad text NOT NULL," +
|
||||
" dateiname text NOT NULL," +
|
||||
" lizenz text NOT NULL," +
|
||||
" uploadtime timestamp NOT NULL default current_timestamp," +
|
||||
" beschreibung text" +
|
||||
" );"
|
||||
);
|
||||
|
||||
db.run("CREATE UNIQUE INDEX idx_geraet_schluessel ON geraet (schluessel);");
|
||||
db.run("CREATE UNIQUE INDEX idx_einheit_schluessel ON einheit (schluessel);");
|
||||
db.run("CREATE UNIQUE INDEX idx_kategorie_schluessel ON kategorie (schluessel);");
|
||||
db.run("CREATE UNIQUE INDEX idx_schwierigket_schluessel ON schwierigkeit (schluessel);");
|
||||
db.run("CREATE UNIQUE INDEX idx_zutat_schluessel ON zutat (schluessel);");
|
||||
db.run("CREATE UNIQUE INDEX idx_rezept_schluessel ON rezept (schluessel);");
|
||||
db.run("CREATE UNIQUE INDEX idx_nutzer_email ON nutzer (email);");
|
||||
db.run("CREATE UNIQUE INDEX idx_wertungkategorie_email ON wertungkategorie (schluessel);")"
|
||||
|
||||
|
||||
);
|
||||
db.run("CREATE UNIQUE INDEX idx_wertungkategorie_email ON wertungkategorie (schluessel);");
|
||||
};
|
||||
|
|
File diff suppressed because it is too large
Load Diff
10
package.json
10
package.json
|
@ -4,11 +4,7 @@
|
|||
"description": "Cookbook app for Families to share their recipies",
|
||||
"main": "app.js",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"start": "node ./bin/www"
|
||||
},
|
||||
"dependencies": {
|
||||
"bcrypt": "^3.0.3",
|
||||
"body-parser": "^1.18.3",
|
||||
"connect-pg-simple": "^5.0.0",
|
||||
"cors": "^2.8.5",
|
||||
|
@ -17,14 +13,10 @@
|
|||
"express-session": "^1.15.6",
|
||||
"http-errors": "~1.6.2",
|
||||
"morgan": "~1.9.0",
|
||||
"node-sass-middleware": "0.11.0",
|
||||
"passport-local": "^1.0.0",
|
||||
"multer": "^1.4.2",
|
||||
"pg": "^7.7.1",
|
||||
"pug": "2.0.0-beta11",
|
||||
"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"
|
||||
},
|
||||
|
|
|
@ -1,8 +0,0 @@
|
|||
body {
|
||||
padding: 50px;
|
||||
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; }
|
||||
|
||||
a {
|
||||
color: #00B7FF; }
|
||||
|
||||
/*# sourceMappingURL=style.css.map */
|
|
@ -1,9 +0,0 @@
|
|||
{
|
||||
"version": 3,
|
||||
"file": "style.css",
|
||||
"sources": [
|
||||
"style.sass"
|
||||
],
|
||||
"names": [],
|
||||
"mappings": "AAAA,AAAA,IAAI,CAAC;EACH,OAAO,EAAE,IAAI;EACb,IAAI,EAAE,kDAAkD,GAAG;;AAE7D,AAAA,CAAC,CAAC;EACA,KAAK,EAAE,OAAO,GAAG"
|
||||
}
|
|
@ -1,6 +0,0 @@
|
|||
body
|
||||
padding: 50px
|
||||
font: 14px "Lucida Grande", Helvetica, Arial, sans-serif
|
||||
|
||||
a
|
||||
color: #00B7FF
|
|
@ -3,7 +3,7 @@ const router = express.Router();
|
|||
var cors = require('cors');
|
||||
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const ingredientsRouter = require('./recepieIngredients');
|
||||
|
@ -11,9 +11,10 @@ const toolsRouter = require('./recepieTools');
|
|||
const durationsRouter = require('./recepieDurations');
|
||||
const stepsRouter = require('./recepieSteps');
|
||||
const categoriesRouter = require('./recepieCategories');
|
||||
const voteRouter = require('./recepieVote');
|
||||
|
||||
|
||||
const DEBUG = false;
|
||||
const DEBUG = true;
|
||||
|
||||
|
||||
|
||||
|
@ -51,9 +52,11 @@ router.use('/:recepieId/tools/', toolsRouter);
|
|||
router.use('/:recepieId/durations/', durationsRouter);
|
||||
router.use('/:recepieId/steps/', stepsRouter);
|
||||
router.use('/:recepieId/categories/', categoriesRouter);
|
||||
router.use('/:recepieId/votes/', voteRouter);
|
||||
|
||||
|
||||
/* 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, "+
|
||||
|
@ -63,9 +66,15 @@ router.get('/', function(req, res, next) {
|
|||
|
||||
" 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+"' "
|
||||
" 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+")"
|
||||
|
||||
|
||||
|
||||
query += " GROUP BY 1,2,3,4,5,6,7"
|
||||
|
||||
|
@ -73,20 +82,27 @@ router.get('/', function(req, res, next) {
|
|||
if(req.query['sort_by'] === 'creation') query += " ORDER BY rezept.id desc";
|
||||
if(req.query['sort_by'] === 'best_match') query += " ORDER BY rezept.name ";
|
||||
if(req.query['sort_by'] === 'rating') query += " ORDER BY rating ";
|
||||
} else if (req.query.limit) {
|
||||
query += " ORDER BY random() LIMIT "+req.query.limit+" "
|
||||
|
||||
} else {
|
||||
query += " ORDER BY rezept.name "
|
||||
}
|
||||
|
||||
|
||||
if(DEBUG) console.log(query);
|
||||
if(DEBUG) console.log("DB", req.db);
|
||||
req.db.query(query, (err, rs) => {
|
||||
console.log("Returned from DB Query");
|
||||
console.log(rs);
|
||||
if (err){
|
||||
console.log(query);
|
||||
next(err);
|
||||
} else {
|
||||
let result = {};
|
||||
if (DEBUG) console.log("RESULT", rs.rows);
|
||||
result['recepies'] = rs.rows;
|
||||
console.log(result);
|
||||
if (DEBUG) console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
@ -120,9 +136,11 @@ router.post('/', function(req, res, next) {
|
|||
"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);
|
||||
if (DEBUG) {
|
||||
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) => {});
|
||||
|
@ -170,12 +188,12 @@ router.copy('/:recepieId', cors(), function(req, res, next) {
|
|||
"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);
|
||||
|
||||
if (DEBUG) {
|
||||
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) => {});
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
const express = require('express');
|
||||
const router = express.Router({mergeParams:true});
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = false;
|
||||
|
@ -36,7 +36,7 @@ router.get('/', function(req, res, next) {
|
|||
} else {
|
||||
let result = {};
|
||||
result['recepieCategories'] = rs.rows;
|
||||
console.log(result);
|
||||
if (DEBUG) console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
const express = require('express');
|
||||
const router = express.Router({mergeParams:true});
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = false;
|
||||
|
@ -33,7 +33,7 @@ router.get('/', function(req, res, next) {
|
|||
} else {
|
||||
let result = {};
|
||||
result['recepieDurations'] = rs.rows;
|
||||
console.log(result);
|
||||
if (DEBUG) console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -0,0 +1,125 @@
|
|||
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;
|
|
@ -1,7 +1,7 @@
|
|||
const express = require('express');
|
||||
const router = express.Router({mergeParams:true});
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = false;
|
||||
|
@ -40,7 +40,7 @@ router.get('/', function(req, res, next) {
|
|||
} else {
|
||||
let result = {};
|
||||
result['recepieIngredients'] = rs.rows;
|
||||
console.log(result);
|
||||
if (DEBUG) console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
@ -79,10 +79,19 @@ router.get('/:ingredientId', function(req, res, next) {
|
|||
|
||||
router.put('/:ingredientId', function(req, res, next) {
|
||||
let recepieIngredient = req.body.recepieIngredients[0];
|
||||
//console.log(recepieIngredient.menge>0);
|
||||
let menge = null;
|
||||
if (recepieIngredient.menge>0) {
|
||||
menge = recepieIngredient.menge;
|
||||
|
||||
} else {
|
||||
menge = null;
|
||||
}
|
||||
|
||||
let query = "UPDATE rezept_zutat set menge = $1, einheit = $2, zutat =$3, beschreibung =$4"+
|
||||
" WHERE id = "+req.ingredientId +
|
||||
" returning *";
|
||||
let values = [recepieIngredient.menge, recepieIngredient.einheit, recepieIngredient.zutat, recepieIngredient.beschreibung];
|
||||
let values = [menge, recepieIngredient.einheit, recepieIngredient.zutat, recepieIngredient.beschreibung];
|
||||
|
||||
if(DEBUG) console.log(query);
|
||||
req.db.query(query, values, (err, rs) => {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
const express = require('express');
|
||||
const router = express.Router({mergeParams:true});
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = false;
|
||||
|
@ -34,7 +34,7 @@ router.get('/', function(req, res, next) {
|
|||
} else {
|
||||
let result = {};
|
||||
result['recepieSteps'] = rs.rows;
|
||||
console.log(result);
|
||||
if (DEBUG) console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
const express = require('express');
|
||||
const router = express.Router({mergeParams:true});
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = false;
|
||||
|
@ -39,7 +39,7 @@ router.get('/', function(req, res, next) {
|
|||
} else {
|
||||
let result = {};
|
||||
result['recepieTools'] = rs.rows;
|
||||
console.log(result);
|
||||
if(DEBUG) console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -0,0 +1,60 @@
|
|||
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;
|
|
@ -1,7 +1,7 @@
|
|||
const express = require('express');
|
||||
const router = express.Router();
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
|
||||
const DEBUG = false;
|
||||
|
||||
|
@ -31,38 +31,38 @@ router.get('/', function(req, res, next) {
|
|||
} else {
|
||||
let result = {};
|
||||
result['users'] = rs.rows;
|
||||
console.log(result);
|
||||
if (DEBUG) console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
router.post('/', function(req, res, next) {
|
||||
let user = req.body.users[0];
|
||||
bcrypt.hash(user.kennwort, 10, function(err, hash) {
|
||||
let query = "INSERT INTO nutzer ( name, email, kennwort, beschreibung) "+
|
||||
" VALUES ('"+user.name+"','"+user.email+"','"+hash+"','"+user.beschreibung+"')" +
|
||||
" returning *";
|
||||
if(DEBUG) console.log(query);
|
||||
|
||||
req.db.query(query, (err, rs) => {
|
||||
if(err && err.constraint && err.constraint ==='idx_nutzer_email') {
|
||||
return res.status(409).send("Email-adress already in use");
|
||||
} else 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;
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
// router.post('/', function(req, res, next) {
|
||||
// let user = req.body.users[0];
|
||||
// bcrypt.hash(user.kennwort, 10, function(err, hash) {
|
||||
// let query = "INSERT INTO nutzer ( name, email, kennwort, beschreibung) "+
|
||||
// " VALUES ('"+user.name+"','"+user.email+"','"+hash+"','"+user.beschreibung+"')" +
|
||||
// " returning *";
|
||||
// if(DEBUG) console.log(query);
|
||||
//
|
||||
// req.db.query(query, (err, rs) => {
|
||||
// if(err && err.constraint && err.constraint ==='idx_nutzer_email') {
|
||||
// return res.status(409).send("Email-adress already in use");
|
||||
// } else 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;
|
||||
// res.status(200).json(result);
|
||||
// }
|
||||
// });
|
||||
// });
|
||||
// });
|
||||
|
||||
|
||||
router.put('/login', function(req, res, next) {
|
||||
|
|
|
@ -4,7 +4,7 @@ const cors = require('cors');
|
|||
const xml = require('xml');
|
||||
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = true;
|
||||
|
|
|
@ -2,7 +2,7 @@ const express = require('express');
|
|||
const router = express.Router();
|
||||
var cors = require('cors');
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = true;
|
||||
|
@ -34,8 +34,8 @@ router.get('/', function(req, res, next) {
|
|||
next(err);
|
||||
} else {
|
||||
let result = {};
|
||||
result['items'] = rs.rows;
|
||||
console.log(result);
|
||||
result['person'] = rs.rows;
|
||||
console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
});
|
||||
|
|
|
@ -2,7 +2,7 @@ const express = require('express');
|
|||
const router = express.Router();
|
||||
var cors = require('cors');
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = true;
|
||||
|
|
|
@ -2,7 +2,7 @@ const express = require('express');
|
|||
const router = express.Router();
|
||||
var cors = require('cors');
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = true;
|
||||
|
@ -34,7 +34,7 @@ router.get('/', function(req, res, next) {
|
|||
next(err);
|
||||
} else {
|
||||
let result = {};
|
||||
result['items'] = rs.rows;
|
||||
result['schueler'] = rs.rows;
|
||||
console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@ const express = require('express');
|
|||
const router = express.Router();
|
||||
var cors = require('cors');
|
||||
|
||||
const bcrypt = require('bcrypt');
|
||||
|
||||
const randToken = require('rand-token');
|
||||
|
||||
const DEBUG = true;
|
||||
|
@ -36,7 +36,7 @@ router.get('/', function(req, res, next) {
|
|||
next(err);
|
||||
} else {
|
||||
let result = {};
|
||||
result['items'] = rs.rows;
|
||||
result['schuljahr'] = rs.rows;
|
||||
console.log(result);
|
||||
res.status(200).json(result);
|
||||
}
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
var express = require('express');
|
||||
var router = express.Router();
|
||||
|
||||
const DEBUG = true;
|
||||
|
||||
const { selectAllFromTable,
|
||||
selectAllFromTableByFieldValue,
|
||||
|
@ -9,13 +10,15 @@ updateNameKeyObject,
|
|||
insertNameKeyObject,
|
||||
deleteNameKeyObject,
|
||||
getAllFromTable,
|
||||
getStructure} = require('./../db/');
|
||||
getItemFromTable,
|
||||
getStructure,
|
||||
getDataStructure} = require('./../db/');
|
||||
|
||||
|
||||
|
||||
router.param('id', function(req, res, next, id) {
|
||||
req.itemId = id;
|
||||
console.log(req.body);
|
||||
if (DEBUG) console.log(req.body);
|
||||
let structure = getStructure(req);
|
||||
req[structure.jsonName] = req.body;
|
||||
next();
|
||||
|
@ -27,23 +30,37 @@ router.param('path', function(req, res, next, id) {
|
|||
next();
|
||||
});
|
||||
|
||||
/* OPTIONS */
|
||||
|
||||
router.get('/options', function(req, res, next) {
|
||||
getDataStructure(req, res, next);
|
||||
});
|
||||
|
||||
|
||||
|
||||
/* GET users listing. */
|
||||
router.get('/:path', function(req, res, next) {
|
||||
getAllFromTable(req, res, next)
|
||||
});
|
||||
|
||||
router.get('/:path/:id', function(req, res, next) {
|
||||
if (DEBUG) console.log("Get Item from WL");
|
||||
getItemFromTable(req, res, next)
|
||||
});
|
||||
|
||||
|
||||
router.put('/:path/:id', function(req, res, next) {
|
||||
console.log("Update WL");
|
||||
if (DEBUG) console.log("Update WL");
|
||||
updateNameKeyObject(req, res, next)
|
||||
});
|
||||
|
||||
router.post('/:path', function(req, res, next) {
|
||||
console.log("Insert WL");
|
||||
if (DEBUG) console.log("Insert WL");
|
||||
insertNameKeyObject(req, res, next)
|
||||
});
|
||||
|
||||
router.delete('/:path/:id', function(req, res, next) {
|
||||
console.log("Delete WL");
|
||||
if (DEBUG) console.log("Delete WL");
|
||||
deleteNameKeyObject(req, res, next)
|
||||
});
|
||||
|
||||
|
|
17
src/Users.js
17
src/Users.js
|
@ -1,17 +0,0 @@
|
|||
|
||||
import { getUserByEmail } from ('./../db/');
|
||||
|
||||
|
||||
|
||||
class User {
|
||||
|
||||
findOne(username) {
|
||||
getUserByEmail(username).then()
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
export default User;
|
|
@ -1,4 +0,0 @@
|
|||
import React from 'react';
|
||||
import ReactDOM from 'react-dom';
|
||||
import App from './views/App';
|
||||
ReactDOM.render(<App />, document.getElementById('root'));
|
|
@ -1,26 +0,0 @@
|
|||
{
|
||||
"name": "schmeckWieDaheim-FrontEnd",
|
||||
"version": "0.1.0",
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"react": "^16.7.0",
|
||||
"react-dom": "^16.7.0",
|
||||
"react-scripts": "2.1.2",
|
||||
"whatwg-fetch": "^3.0.0"
|
||||
},
|
||||
"scripts": {
|
||||
"start": "react-scripts start",
|
||||
"build": "react-scripts build",
|
||||
"test": "react-scripts test",
|
||||
"eject": "react-scripts eject"
|
||||
},
|
||||
"eslintConfig": {
|
||||
"extends": "react-app"
|
||||
},
|
||||
"browserslist": [
|
||||
">0.2%",
|
||||
"not dead",
|
||||
"not ie <= 11",
|
||||
"not op_mini all"
|
||||
]
|
||||
}
|
|
@ -1,25 +0,0 @@
|
|||
// API-Class to fetch Information from "schmektWieDaheim"
|
||||
|
||||
import 'whatwg-fetch';
|
||||
|
||||
const Cookbook = {};
|
||||
const baseUrl = 'http://localhost:4000';
|
||||
|
||||
Cookbook.getRecepies = () => {
|
||||
const url = `${baseUrl}/recepies`;
|
||||
|
||||
return fetch(url).then(response => {
|
||||
if(!response.ok) {
|
||||
return new Proimse(resolve => resolve([]));
|
||||
}
|
||||
return response.json().then(jsonResponse => {
|
||||
return jsonResponse.recepies.map(recepie);
|
||||
})
|
||||
})
|
||||
};
|
||||
|
||||
|
||||
|
||||
// Export Module
|
||||
|
||||
export default Cookbook;
|
|
@ -1,33 +0,0 @@
|
|||
import React, { Component } from 'react';
|
||||
import { Link, HashRouter as Router, Route, browserHistory } from 'react-router-dom';
|
||||
|
||||
|
||||
import Recepie from './Recepie';
|
||||
|
||||
class App extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {};
|
||||
}
|
||||
|
||||
render () {
|
||||
return (
|
||||
<Router history={browserHistory}>
|
||||
<div className="App">
|
||||
<header>
|
||||
<Link to="/" className="logo">
|
||||
<img src='public/img/logo.svg' alt="logo" />
|
||||
</Link>
|
||||
</header>
|
||||
|
||||
<Route exact path="/" component={Landing} />
|
||||
|
||||
|
||||
<Route path="/recepies/:id" component={Employee} />
|
||||
</div>
|
||||
</Router>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
export default App;
|
|
@ -1,34 +0,0 @@
|
|||
import React, { Component } from 'react';
|
||||
import { withRouter } from "react-router-dom";
|
||||
|
||||
import Cookbook from '../utils/Cookbook';
|
||||
|
||||
|
||||
class Cookbook extends Component {
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
this.state = {
|
||||
recepie: null,
|
||||
ingredients: [],
|
||||
durations: []
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
render() {
|
||||
|
||||
if (!this.state.recepie) {
|
||||
return <div className="Recepie">Kein Rezept gefunden</div>
|
||||
}
|
||||
const recepie = this.state.recepie;
|
||||
return (
|
||||
<div className="Recepie">Rezept gefunden</div>
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
export default withRouter(Cookbook);
|
Loading…
Reference in New Issue