Georg Reisinger 85b88b7d17 User Bearbeiten
User bearbeiten, holt die daten des Users vom server (Bild und Name)

Beides kommt an, aber nur der Name wird angezeigt, das Bild wird nicht gesetzt, aber kann manuell gesetzt werden, wenn man bei data einen link reinschreibt
2019-03-20 20:10:21 +01:00

476 lines
12 KiB
JavaScript

var express = require('express');
var router = express.Router();
var XMLHttpRequest = require("xmlhttprequest").XMLHttpRequest;
var push = require("./../push/push");
// var firebase = require('firebase');
//Database
var postgres = require("./../db-connect/db-connect");
var admin = require('firebase-admin');
var serviceAccount = require('../login/firebaseAdminKey.json');
var firebaseAdmin = admin.initializeApp({
credential: admin.credential.cert(serviceAccount),
databaseURL: 'https://test-667ca.firebaseio.com'
});
router.get('/user', function(req, res, next){
res.status(200).render('user');
});
router.get('/getuser/:uid', async function(req, res){
try {
var sender = await postgres.getUser(req.params.uid);
res.status(200).send(sender);
}catch (err) {
res.status(400).send(await err);
}
});
//Push
router.get('/push/:msgtoken/:message/:title', function (req, res, next) {
push.sendPush(req.params.msgtoken, req.params.title, req.params.message);
var sender = "Message Token: " + req.params.msgtoken + " Message: " + req.params.message + " Title: " + req.params.title;
res.status(200).send(sender);
});
// Login und Dash
router.get('/', function (req, res, next) {
res.render('index');
});
router.get('/dash/:idtoken', function (req, res, next) {
// const msgtoken = req.params.msgtoken;
const 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('/register', (req, res) => {
res.status(200).render('registrieremail');
});
// 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)
});
});
//Test Funktion für Android, liefert die FirebaseAdmin Skd UID
// router.get("/androidUIDTest/:idtoken", function (req, res, next) {
// var token = req.params.idtoken;
// console.log("/sharedshoppinglists idtoken: ", token)
// var uid;
// firebaseAdmin.auth().verifyIdToken(token)
// .then(async function(decodedToken) {
// uid = decodedToken.uid;
// console.log("UID: ", uid);
// res.status(200).send(uid);
// }).catch( async function(error) {
// console.log(error)
// });
// })
//GET Shared shoppinglists as JSON
router.get("/sharedshoppinglists", async function (req, res, next) {
var token = req.query.idtoken;
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.getShoppinglistsShared(uid));
} catch (err) {
res.status(400).send(await err);
}
}).catch(function (error) {
console.log(error)
});
});
//GET ALL SHOPPINGLISTS
router.get("/shoppinglistsbylink", async function (req, res, next) {
var token = req.query.idtoken;
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.getShoppinglistsByLink(req.query.link));
} catch (err) {
res.status(400).send(await err);
}
}).catch(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));
sendPush("enG4tJ6LyyU:APA91bEYjUEs7Sdzvu2ivgfqtpzlg42BZLlujDSRg0WLBvfZ_oD4V7cTx2o6MVr4oAdeHaK0wttPMQ85GMMOkgM7xvbHFcwXUG4MCr8JXX16S-OV2CS4ikQ286DOHPtBotbM7pqFTvIM", "Einkaufsliste " + req.body.name + " wurde erstellt!", req.body.description)
} 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) => {
try {
res.status(200).send(await postgres.displayShoppinglist(req.params.sl_id));
} catch (err) {
res.status(400).send(await err);
}
});
postgres.displayShoppinglist("4tezJYMK");
//DELETE Shoppinglist
router.delete("/shoppinglist", async (req, res) => {
var token = req.body.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(async function (decodedToken) {
uid = decodedToken.uid;
try {
res.status(200).send(await postgres.deleteShoppinglist(req.body.sl_id, uid));
} catch (err) {
res.status(400).send(await err);
}
}).catch(function (error) {
console.log(error)
});
});
router.post("/movedoneitem", (req, res) => {
var token = req.body.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(async function (decodedToken) {
uid = decodedToken.uid;
try {
res.status(200).send(await postgres.moveDoneItemMan(uid, req.body.sl_id, req.body.group_id, req.body.item_id));
} catch (err) {
res.status(400).send(await err);
}
}).catch(function (error) {
console.log(error)
});
});
//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("/shoppinglist", async (req, res) => {
try {
res.status(200).send(await postgres.editShoppinglist(req.body.sl_id, req.body.name, req.body.description, req.body.color));
} catch (err) {
res.status(400).send(await err);
}
});
//Rename Group
router.put("/group", async (req, res) => {
try {
res.status(200).send(await postgres.editGroup(req.body.sl_id, req.body.group_id, req.body.name, req.body.color, req.body.hidden));
} catch (err) {
res.status(400).send(await err);
}
});
router.put("/item", async (req, res) => {
try {
res.status(200).send(await postgres.editItem(req.body.sl_id, req.body.group_id, req.body.item_id, req.body.name, req.body.count));
} catch (err) {
res.status(400).send(await err);
}
});
router.delete("/group", async (req, res) => {
try {
res.status(200).send(await postgres.deleteGroup(req.body.group_id, req.body.sl_id));
} catch (err) {
res.status(400).send(await err);
}
});
router.delete("/item", async (req, res) => {
try {
res.status(200).send(await postgres.deleteItem(req.body.item_id, req.body.group_id, req.body.sl_id));
} 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.post("/maninvite", async (req, res) => {
try {
res.status(200).send(await postgres.manInvite(req.body.sl_id, req.body.uid));
} catch (err) {
res.status(400).send(err);
}
});
router.delete("/member", (req, res) => {
try {
postgres.removeMember(req.body.uid, req.body.sl_id)
} catch (err) {
return err;
}
});
router.get("/invite/:invitelink", async (req, res) => {
res.status(200).render("invite");
});
router.post("/invitemember", (req, res) => {
var token = req.body.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(async function (decodedToken) {
uid = decodedToken.uid;
try {
console.log("Route LInk inv", req.body.link);
res.status(200).send(await postgres.verifyInvite(req.body.link, uid));
} catch (err) {
res.status(400).send(await err);
}
}).catch(function (error) {
console.log(error)
});
});
//Update User
router.post("/user", 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.updateUser(uid, req.body.message_id, decodedToken.name, decodedToken.picture, decodedToken.email));
} catch (err) {
res.status(400).send(await err);
}
}).catch(function (error) {
console.log(error)
});
});
router.get("/users", async (req, res) => {
try {
res.status(200).send(await postgres.searchUsers(req.query.search));
} catch (err) {
res.status(400).send(err);
}
});
//postgres.updateUser("testuser2", "einemessageid");
//postgres.moveDoneItems('dXMuv1J0f4O7RKn2bizGMTHUYkg1', '2IY2BwLP', 'aAnNNanas bjdbafBROtcHiPs');
router.post("/donepurchases", (req, res) => {
var token = req.query.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(async function (decodedToken) {
uid = decodedToken.uid;
try {
console.log("test");
} catch (err) {
console.error(error);
}
}).catch(async function (error) {
console.log(error)
});
});
//GET Done Purchases
router.get("/donepurchases", (req, res) => {
var token = req.query.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(async function (decodedToken) {
uid = decodedToken.uid;
try {
res.status(200).send(await postgres.getDonePurchases(uid));
} catch (err) {
res.status(400).send(await err);
}
}).catch(async function (error) {
console.log(error)
});
});
//OCR Scan
router.get("/scan/", async (req, res, ) => {
res.render("ocrscan");
});
router.post("/dones", 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.moveDoneItems(uid, req.body.sl_id, req.body.billcontent));
} catch (err) {
res.status(400).send(await err);
}
}).catch(function (error) {
console.log(error)
});
});
router.get("/dash2", (req, res) => {
res.status(200).render("dash2");
});
module.exports = router;