This commit is contained in:
Max Hunt 2020-04-26 12:44:14 +01:00
parent 6fd448e28f
commit 4785c6e8b8
9 changed files with 85 additions and 38 deletions

View File

@ -2,6 +2,7 @@ const functions = require('firebase-functions');
var express = require('express') var express = require('express')
var logger = require('morgan') var logger = require('morgan')
var bodyParser = require('body-parser')
var admin = require("firebase-admin"); var admin = require("firebase-admin");
var serviceAccount = require("./project-gg-3b754-firebase-adminsdk-4848h-5a5778b77b.json"); var serviceAccount = require("./project-gg-3b754-firebase-adminsdk-4848h-5a5778b77b.json");
@ -13,6 +14,9 @@ var database = firebaseadmin.database()
var app = express() var app = express()
app.use(bodyParser.json())
app.use(bodyParser.urlencoded({extended: true}))
app.use(logger('dev')) app.use(logger('dev'))
app.use(express.static('views')) app.use(express.static('views'))
@ -22,21 +26,14 @@ app.set('views', __dirname + '/views')
app.get("/", function(request, responce) { app.get("/", function(request, responce) {
var dbRef = database.ref("/products") homePage(request, responce)
dbRef.limitToLast(5).once('value', function(snapshot){
var data = {}
data = snapshot.val()
var x = "none"
if (request.query.itemAdded == "true") {
x = 'block'
}
responce.render('home.ejs', {products: data, message: x})
})
// responce.render("home.ejs")
}) })
app.get("/home", function(request, responce) { app.get("/home", function(request, responce) {
homePage(request, responce)
})
function homePage(request, responce) {
var dbRef = database.ref("/products") var dbRef = database.ref("/products")
dbRef.limitToLast(5).once('value', function(snapshot){ dbRef.limitToLast(5).once('value', function(snapshot){
var data = {} var data = {}
@ -47,14 +44,48 @@ app.get("/home", function(request, responce) {
} }
responce.render('home.ejs', {products: data, message: x}) responce.render('home.ejs', {products: data, message: x})
}) })
}
// responce.render("home.ejs")
})
app.get('/additmpage', function(request, responce){ app.get('/additmpage', function(request, responce){
responce.render('add-item.ejs') responce.render('add-item.ejs')
}) })
app.get('/my-products', function(request, responce){
if (request.query.uToken) {
admin.auth().verifyIdToken(request.query.uToken)
.then(function(decodedToken) {
let uid = decodedToken.uid;
var dbRef = database.ref("/products")
dbRef.orderByChild('owner').equalTo(uid).once('value', function(snapshot){
var data = {
'x': {
desc: '',
holder: '',
id: 999,
img: '',
location: '',
name: 'No products listed 😢',
owner: '',
price: '',
public: '',
stock: ''
},
}
if (snapshot.val()) {data = snapshot.val()}
console.log(data)
responce.render('my-products.ejs', {products: data})
})
})
.catch(function(error) {
console.log(error)
responce.send("<h1>Bad Auth Token</h1><a href='home'>Home</a>")
});
}
else {
responce.send("<h1>No Auth Token Provided</h1><a href='home'>Home</a>")
}
})
app.get('/product', function(request, responce){ app.get('/product', function(request, responce){
if (request.query.productid) { if (request.query.productid) {
var dbRef = database.ref("/products/"+request.query.productid) var dbRef = database.ref("/products/"+request.query.productid)

View File

@ -24,7 +24,7 @@
<div class="navbar"> <div class="navbar">
<div class="logon-crumbs"> <div class="logon-crumbs">
<div id="uname-field" style="display: none;"> <div id="uname-field" style="display: none;">
<a id="uname-dom" class="user-name" href="/">Unregistered user</a> <a id="uname-dom" class="user-name" href="javascript:;" onclick="my_products();">Unregistered user</a>
<div class="user-logout"> <div class="user-logout">
<a onclick={signout()}>Log out</a> <a onclick={signout()}>Log out</a>
</div> </div>
@ -62,9 +62,9 @@
<div class="e-404"> <div class="e-404">
<h1>It's a 404!</h1> <h1>It's a 404!</h1>
<a href='home'>Home</a>
</div> </div>
<div class="space"></div> <div class="space"></div>
</div> </div>
@ -89,6 +89,6 @@
</div> </div>
</footer> </footer>
<script src="js/fAuth.js"></script> <script src="js/fAuth.js"></script>
<script src="js/fStore.js"></script> <script src="js/fdb.js"></script>
</body> </body>
</html> </html>

View File

@ -25,7 +25,7 @@
<div class="navbar"> <div class="navbar">
<div class="logon-crumbs"> <div class="logon-crumbs">
<div id="uname-field" style="display: none;"> <div id="uname-field" style="display: none;">
<a id="uname-dom" class="user-name" href="my-products">Unregistered user</a> <a id="uname-dom" class="user-name" href="javascript:;" onclick="my_products();">Unregistered user</a>
<div class="user-logout"> <div class="user-logout">
<a onclick={signout()}>Log out</a> <a onclick={signout()}>Log out</a>
</div> </div>

View File

@ -501,9 +501,13 @@ footer a {
} }
.my-product-container { .my-product-container {
padding-top: 15px; padding-top: 15px;
width: 300px; width: 100%;
display: inline-flex; display: inline-flex;
} }
.my-product-container a {
width: 20%;
max-height: 20%;
}
.my-product-container img { .my-product-container img {
width: 100%; width: 100%;
max-height: 100%; max-height: 100%;
@ -518,6 +522,7 @@ footer a {
font-family: nunito; font-family: nunito;
color: #CA5555; color: #CA5555;
font-size: 25px; font-size: 25px;
width: 100%;
} }
.top { .top {
padding-top: 5px; padding-top: 5px;

View File

@ -69,6 +69,7 @@ function signinwithemail(){
function signout(){ function signout(){
firebase.auth().signOut() firebase.auth().signOut()
window.location.replace(window.location.href.split("?")[0])
} }

View File

@ -89,7 +89,7 @@ function updateImgs() {
// console.log(images) // console.log(images)
Array.from(images).forEach((image) => { Array.from(images).forEach((image) => {
var pathReference = rootReference.child(image.title) var pathReference = rootReference.child(image.title)
pathReference.getDownloadURL().then(function(url) {image.src = url}) pathReference.getDownloadURL().then(function(url) {image.src = url}).catch(e => {console.log(e.message)})
}) })
} }
@ -109,12 +109,7 @@ function purchaseItem() {
function my_products() { function my_products() {
firebase.auth().currentUser.getIdToken().then(function(idToken) { firebase.auth().currentUser.getIdToken().then(function(idToken) {
let data = JSON.stringify({uToken: idToken}) window.location.replace("my-products?uToken=" + idToken)
fetch("my-products", {
method: "POST",
headers: {"Content-type": "application/json"},
body: data
})
}) })
.catch(e => {console.log(e)})
} }

View File

@ -24,7 +24,7 @@
<div class="navbar"> <div class="navbar">
<div class="logon-crumbs"> <div class="logon-crumbs">
<div id="uname-field" style="display: none;"> <div id="uname-field" style="display: none;">
<a id="uname-dom" class="user-name" href="my-products">Unregistered user</a> <a id="uname-dom" class="user-name" href="home">Unregistered user</a>
<div class="user-logout"> <div class="user-logout">
<a onclick={signout()}>Log out</a> <a onclick={signout()}>Log out</a>
</div> </div>

View File

@ -24,7 +24,7 @@
<div class="navbar"> <div class="navbar">
<div class="logon-crumbs"> <div class="logon-crumbs">
<div id="uname-field" style="display: none;"> <div id="uname-field" style="display: none;">
<a id="uname-dom" class="user-name" href="my-products">Unregistered user</a> <a id="uname-dom" class="user-name" href="javascript:;" onclick="my_products();">Unregistered user</a>
<div class="user-logout"> <div class="user-logout">
<a onclick={signout()}>Log out</a> <a onclick={signout()}>Log out</a>
</div> </div>

View File

@ -56,27 +56,42 @@ app.get('/additmpage', function(request, responce){
responce.render('add-item.ejs') responce.render('add-item.ejs')
}) })
app.post('/my-products', function(request, responce){ app.get('/my-products', function(request, responce){
admin.auth().verifyIdToken(request.body.uToken) if (request.query.uToken) {
admin.auth().verifyIdToken(request.query.uToken)
.then(function(decodedToken) { .then(function(decodedToken) {
let uid = decodedToken.uid; let uid = decodedToken.uid;
var dbRef = database.ref("/products") var dbRef = database.ref("/products")
dbRef.orderByChild('owner').equalTo(uid).once('value', function(snapshot){ dbRef.orderByChild('owner').equalTo(uid).once('value', function(snapshot){
var data = {} var data = {
data = snapshot.val() 'x': {
desc: '',
holder: '',
id: 999,
img: '',
location: '',
name: 'No products listed 😢',
owner: '',
price: '',
public: '',
stock: ''
},
}
if (snapshot.val()) {data = snapshot.val()}
console.log(data) console.log(data)
responce.render('my-products.ejs', {products: data}) responce.render('my-products.ejs', {products: data})
}) })
}) })
.catch(function(error) { .catch(function(error) {
console.log(error) console.log(error)
responce.send("<h1>Bad Auth Token</h1><a href='home'>Home</a>")
}); });
}
else {
responce.send("<h1>No Auth Token Provided</h1><a href='home'>Home</a>")
}
}) })
app.get('/product', function(request, responce){ app.get('/product', function(request, responce){
if (request.query.productid) { if (request.query.productid) {
var dbRef = database.ref("/products/"+request.query.productid) var dbRef = database.ref("/products/"+request.query.productid)