var express = require('express'); var router = express.Router(); // var firebase = require('firebase'); var admin = require('firebase-admin'); //Database var postgres = require("./../db-connect/db-connect"); // Initialize Firebase // const config = { // apiKey: "AIzaSyCuvwf78cmSDoZ2yS4XxHZhnjUn7yIHYfw", // authDomain: "test-667ca.firebaseapp.com", // databaseURL: "https://test-667ca.firebaseio.com", // projectId: "test-667ca", // storageBucket: "test-667ca.appspot.com", // messagingSenderId: "221332577314" // }; // firebase.initializeApp(config); var serviceAccount = require('../login/firebaseAdminKey.json'); var firebaseAdmin = admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: 'https://test-667ca.firebaseio.com' }); // Login und Dash router.get('/', function(req, res, next) { res.render('index'); }); router.get('/dash/:idtoken', function(req, res, next) { var token = req.params.idtoken; var uid; firebaseAdmin.auth().verifyIdToken(token) .then(function(decodedToken) { uid = decodedToken.uid; // HIER WEITER MACHEN // uid ist nur hier drinen verfügbar }).catch(function(error) { console.log(error) }); res.render('dash'); }); router.get('/logout', (req, res, next) => { }); // SmartShopper //GET Own shoppinglists as JSON router.get("/myshoppinglists",async function(req, res, next) { var token = req.query.idtoken; console.log("/myshoppinglists idtoken: ", token) firebaseAdmin.auth().verifyIdToken(token) .then(async function(decodedToken) { uid = decodedToken.uid; console.log("uid", uid) try { //Get user id: req.session.passport.user.profile.id res.status(200).send(await postgres.getShoppinglistsAdmin(uid)); } catch(err) { res.status(400).send(await err); } }).catch(function(error) { console.log(error) }); }); //GET Shared shoppinglists as JSON router.get("/sharedshoppinglists", async function(req, res, next) { var token = req.query.idtoken; console.log("/sharedshoppinglists idtoken: ", token) var uid; firebaseAdmin.auth().verifyIdToken(token) .then(async function(decodedToken) { uid = decodedToken.uid; console.log("UID: ", uid); try { //Get user id: das da oben res.status(200).send(await postgres.getShoppinglistsShared(uid)); } catch(err) { res.status(400).send(await err); } }).catch( async function(error) { console.log(error) }); }); //POST new shoppinglist router.post("/shoppinglist", async function(req, res, next) { console.log("/shoppinglist idtoken: ", req.body.idtoken) var token = req.body.idtoken; var uid; firebaseAdmin.auth().verifyIdToken(token) .then(async function(decodedToken) { uid = decodedToken.uid; console.log("UID: ", uid); console.log("So andere sachen: ", req.body.name, req.body.description); try { res.status(200).send(await postgres.newShoppinglist(req.body.name, req.body.description, uid, req.body.color)); } catch(err) { res.status(400).send(await err); } }).catch(function(error) { console.log(error) }); }); //GET Shoppinglist detail router.get("/shoppinglist_json/:sl_id", async (req, res) => { var token = req.query.idtoken; var uid; firebaseAdmin.auth().verifyIdToken(token) .then(async function(decodedToken) { uid = decodedToken.uid; console.log("UID: ", uid); try { res.status(200).send(await postgres.displayShoppinglist(req.params.sl_id, uid)); } catch(err) { res.status(400).send(await err); } }).catch(function(error) { console.log(error) }); }); //DELETE Shoppinglist router.delete("/shoppinglist", async (req, res) => { try { res.status(200).send(await postgres.deleteShoppinglist(req.body.sl_id)); } catch(err) { res.status(400).send(await err); } }); //Group erstellen router.post("/group", async (req, res) => { try { res.status(200).send(await postgres.addGroup(req.body.sl_id, req.body.name, req.body.color, req.body.hidden)); } catch(err) { res.status(400).send(await err); } }); //Item erstellen router.post("/item", async (req, res) => { try { res.status(200).send(await postgres.addItem(req.body.group_id, req.body.sl_id, req.body.name, req.body.count)); } catch (err) { res.status(400).send(await err); } }); router.get("/test1", (req, res) => { res.render("test"); }); router.get("/userinfo_json", (req, res) => { var token = req.query.idtoken; console.log("/userinfo_json idtoken: ", token) firebaseAdmin.auth().verifyIdToken(token) .then(function(decodedToken) { res.send(decodedToken); }).catch(function(error) { console.log(error) }); }); //Rename Shoppinglist router.put("/renamelist", async (req, res) => { try { res.status(200).send(await postgres.renameShoppinglist(req.body.sl_id, req.body.name, req.body.description, req.body.color)); } catch(err) { res.status(400).send(await err); } }); // Invite System router.post("/invite", async (req, res) => { try { res.status(200).send(await postgres.createInvite(req.body.sl_id)); } catch(err) { res.status(400).send(await err); } }); router.get("/invite/:link", async (req, res) => { var token = req.query.idtoken; var uid; firebaseAdmin.auth().verifyIdToken(token) .then(function(decodedToken) { uid = decodedToken.uid; console.log("UID: ", uid); try { postgres.verifyInvite(req.params.link, uid); res.redirect("/dash"); } catch(err) { res.redirect("/dash"); } }).catch(function(error) { console.log(error) }); }); module.exports = router;