List, export, recommendations done
This commit is contained in:
21
routes/export.ts
Normal file
21
routes/export.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
import * as express from "express";
|
||||
import * as QRCode from "qrcode";
|
||||
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.use((req, res, next) => {
|
||||
if (!req.cookies || !req.cookies.uid) {
|
||||
res.status(404);
|
||||
res.send();
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
});
|
||||
|
||||
router.get("/", (req, res, next) => {
|
||||
QRCode.toDataURL(req.cookies.uid, (err, url) => {
|
||||
res.render("export", {title: "Export", uid: req.cookies.uid, dataurl: url});
|
||||
});
|
||||
});
|
||||
export = router;
|
||||
@@ -11,9 +11,8 @@ router.use((req, res, next) => {
|
||||
});
|
||||
|
||||
router.get("/", (req, res, next) => {
|
||||
const user = req.app.db.get("users").find({id: req.cookies.uid}).value();
|
||||
console.log(user);
|
||||
res.render("index", {title: "Liebingscocktails", user, cocktails: req.app.cocktails, cocktailList: req.app.cocktailList});
|
||||
const user = (req.app as any).db.get("users").find({id: req.cookies.uid}).value();
|
||||
res.render("index", {title: "Liebingscocktails", user, cocktails: (req.app as any).cocktails, cocktailList: (req.app as any).cocktailList});
|
||||
});
|
||||
|
||||
export = router;
|
||||
|
||||
89
routes/recommends.ts
Normal file
89
routes/recommends.ts
Normal file
@@ -0,0 +1,89 @@
|
||||
import * as express from "express";
|
||||
const router = express.Router();
|
||||
|
||||
router.use((req, res, next) => {
|
||||
if (!req.cookies || !req.cookies.uid) {
|
||||
res.status(404);
|
||||
res.send();
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
});
|
||||
|
||||
router.get("/", (req, res, next) => {
|
||||
const user = (req.app as any).db.get("users").find({id: req.cookies.uid}).value();
|
||||
const data = [{
|
||||
backgroundColor: "rgba(200, 200, 200, 1)",
|
||||
data: [],
|
||||
label: "Noch nicht probiert",
|
||||
}, {
|
||||
backgroundColor: "#8b0000",
|
||||
data: [],
|
||||
label: "1",
|
||||
}, {
|
||||
backgroundColor: "#b24502",
|
||||
data: [],
|
||||
label: "2",
|
||||
}, {
|
||||
backgroundColor: "#d87501",
|
||||
data: [],
|
||||
label: "3",
|
||||
}, {
|
||||
backgroundColor: "#ffa500",
|
||||
data: [],
|
||||
label: "4",
|
||||
}, {
|
||||
backgroundColor: "#b59200",
|
||||
data: [],
|
||||
label: "5",
|
||||
}, {
|
||||
backgroundColor: "#6b7d00",
|
||||
data: [],
|
||||
label: "6",
|
||||
}, {
|
||||
backgroundColor: "#006400",
|
||||
data: [],
|
||||
label: "7",
|
||||
}];
|
||||
const recommends = [];
|
||||
(req.app as any).cocktails.forEach((value) => {
|
||||
let found = false;
|
||||
const triedCocktails = [];
|
||||
for (const cocktail of user.cocktails) {
|
||||
if (cocktail.cocktail === value[3]) {
|
||||
data[cocktail.level].data.push({x: value[0], y: value[1], r: 4, val: value});
|
||||
found = true;
|
||||
break;
|
||||
} else {
|
||||
triedCocktails.push(cocktail);
|
||||
}
|
||||
}
|
||||
if (!found) {
|
||||
let dist = 0;
|
||||
let distsum = 0;
|
||||
for (const tried of triedCocktails) {
|
||||
const idx = (req.app as any).cocktailList.indexOf(tried.cocktail);
|
||||
if (idx > -1) {
|
||||
const c = (req.app as any).cocktails[idx];
|
||||
const d = Math.abs(c[0] - value[0]) + Math.abs(c[1] - value[1]);
|
||||
if (d > 0.001) {
|
||||
dist += (tried.level) / d;
|
||||
distsum += 1 / d;
|
||||
} else {
|
||||
dist = tried.level;
|
||||
distsum = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
recommends.push([dist / distsum, value]);
|
||||
data[0].data.push({x: value[0], y: value[1], r: 3, val: value});
|
||||
}
|
||||
});
|
||||
recommends.sort((a, b) => {
|
||||
return a[0] < b[0] ? 1 : (a[0] === b[0] ? 0 : -1);
|
||||
});
|
||||
res.render("recommends", {data, title: "Ähnliche Cocktails", user, cocktails: (req.app as any).cocktails, cocktailList: (req.app as any).cocktailList, recommends});
|
||||
});
|
||||
|
||||
export = router;
|
||||
@@ -27,7 +27,7 @@ router.get("/personal", (req, res) => {
|
||||
}
|
||||
console.log(result);
|
||||
if (!!result.age || !!result.sex) {
|
||||
req.app.db.get("users")
|
||||
(req.app as any).db.get("users")
|
||||
.find({id: req.cookies.uid})
|
||||
.assign(result)
|
||||
.write();
|
||||
@@ -46,7 +46,7 @@ router.get("/newcocktail", (req, res) => {
|
||||
if (level > 0 && level < 8) {
|
||||
result.level = level;
|
||||
}
|
||||
if (req.app.cocktailList.indexOf(cocktail) > -1) {
|
||||
if ((req.app as any).cocktailList.indexOf(cocktail) > -1) {
|
||||
result.cocktail = cocktail;
|
||||
}
|
||||
if (!!result.level && !!result.cocktail) {
|
||||
@@ -67,4 +67,35 @@ router.get("/newcocktail", (req, res) => {
|
||||
res.send();
|
||||
});
|
||||
|
||||
|
||||
router.get("/getingredients", (req, res) => {
|
||||
const cocktail = req.query.cocktail || null;
|
||||
if ((req.app as any).cocktailList.indexOf(cocktail) > -1) {
|
||||
const index = (req.app as any).cocktailList.indexOf(cocktail);
|
||||
const cdetails = (req.app as any).cocktails[index][7].replace(/;/g, ", ");
|
||||
res.status(200);
|
||||
res.send(cdetails);
|
||||
} else {
|
||||
res.status(200);
|
||||
res.send("");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
router.get("/isvaliduid", (req, res) => {
|
||||
const uid = req.query.uid || null;
|
||||
const newuser = (req.app as any).db.get("users")
|
||||
.find({id: uid})
|
||||
.value();
|
||||
if (!!newuser) {
|
||||
res.status(200);
|
||||
res.send("valid");
|
||||
} else {
|
||||
res.status(200);
|
||||
res.send("invalid");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
export = router;
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
import * as express from "express";
|
||||
const router = express.Router();
|
||||
|
||||
/* GET users listing. */
|
||||
router.get("/", (req, res, next) => {
|
||||
res.send("respond with a resource");
|
||||
});
|
||||
|
||||
export = router;
|
||||
Reference in New Issue
Block a user