diff --git a/functions/index.js b/functions/index.js index 20f73a9..0d54a13 100644 --- a/functions/index.js +++ b/functions/index.js @@ -35,9 +35,9 @@ app.get("/home", function(request, responce) { function homePage(request, responce) { var dbRef = database.ref("/products") - dbRef.limitToLast(5).once('value', function(snapshot){ + dbRef.orderByChild("status").equalTo("on-sale").limitToLast(5).once('value', function(snapshot){ var data = {} - data = snapshot.val() + if (snapshot.val()) {data = snapshot.val()} var x = "none" if (request.query.itemAdded == "true") { x = 'block' @@ -96,6 +96,27 @@ app.get('/my-products', function(request, responce){ } }) +app.get('/my-product', function(request, responce){ + if (request.query.uToken && request.query.productid) { + admin.auth().verifyIdToken(request.query.uToken) + .then(function(decodedToken) { + let uid = decodedToken.uid; + var dbRef = database.ref("/products/"+request.query.productid) + dbRef.once('value', function(snapshot){ + data = snapshot.val() + responce.render('my-product.ejs', {item:data, key:request.query.productid}) + }) + }) + .catch(function(error) { + console.log(error) + responce.send("

Bad Auth Token

Home") + }); + } + else { + responce.send("

No Auth Token Provided

Home") + } +}) + app.get('/product', function(request, responce){ if (request.query.productid) { var dbRef = database.ref("/products/"+request.query.productid) @@ -121,7 +142,7 @@ app.post('/purchase-api', function(request, responce){ let uid = decodedToken.uid; let product = request.body.item var productRef = database.ref("/products/"+product) - productRef.update({owner:uid}) + productRef.update({owner:uid, status:"sold"}) responce.send({success:true, error:null}) }) .catch(function(error) { diff --git a/functions/views/add-item.ejs b/functions/views/add-item.ejs index 4e082d6..f4e7ffc 100644 --- a/functions/views/add-item.ejs +++ b/functions/views/add-item.ejs @@ -63,9 +63,6 @@ -
- -
diff --git a/functions/views/css/style.css b/functions/views/css/style.css index 45d0018..41a071b 100644 --- a/functions/views/css/style.css +++ b/functions/views/css/style.css @@ -511,18 +511,18 @@ footer a { .my-products-container { } + .my-product-container { padding-top: 15px; width: 100%; + height: 160px; display: inline-flex; } -.my-product-container a { - width: 20%; - max-height: 20%; -} + + .my-product-container img { - width: 100%; - height: 100%; + width: 20%; + max-height: 90%; cursor: pointer; } .my-product-details-container { @@ -590,7 +590,7 @@ footer a { background-color: #CB0070; } .edit-btn button:hover { - background-color: #20A0A0; + background-color: #ea62ff; } .sell-btn button:hover { background-color: #AAFF00; diff --git a/functions/views/js/fdb.js b/functions/views/js/fdb.js index 37f94bc..cb1b20b 100644 --- a/functions/views/js/fdb.js +++ b/functions/views/js/fdb.js @@ -12,10 +12,10 @@ function productSubmitEventHandler(){ id: 1, name: "", desc: "", - img: "", + img: "default.png", location: "", - stock: 0, - public: true, + stock: 1, + status: "on-sale", price: 0, owner: "", holder: "" @@ -25,7 +25,6 @@ function productSubmitEventHandler(){ const descField = document.getElementById('pDesc') const locField = document.getElementById('pLoc') const stockField = document.getElementById('pStock') - const publicField = document.getElementById('pPublic') const priceField = document.getElementById('pPrice') const imgBtn = document.getElementById('pImg') @@ -35,10 +34,10 @@ function productSubmitEventHandler(){ data.id = 999 data.name = nameField.value data.desc = descField.value - data.img = "default.png" data.location = locField.value - data.stock = stockField.value - data.public = publicField.value + if (stockField.value) { + data.stock = stockField.value + } data.price = priceField.value data.owner = sessUid data.holder = sessUid @@ -119,12 +118,15 @@ function purchaseItem() { .then(function(result){ console.log(result) if (result.success == true) { - document.getElementById("api-response").setAttribute("style", "display: block") + purchaseBtn.setAttribute("style", "background: #00DD00; width:500px;") + purchaseBtn.innerHTML = "Item Purchased, Congratulations!" } else { + purchaseBtn.setAttribute("style", "background: red;") + purchaseBtn.disabled = true + purchaseBtn.innerHTML = "ERROR" document.getElementById("api-response").innerHTML = "Error: " + result.error document.getElementById("api-response").setAttribute("style", "display: block") - document.getElementById("api-response").setAttribute("style", "color: #DD0000") } //check return value //update element accordingly diff --git a/functions/views/my-products.ejs b/functions/views/my-products.ejs index b7915a7..1caca4e 100644 --- a/functions/views/my-products.ejs +++ b/functions/views/my-products.ejs @@ -66,14 +66,10 @@ <% var keys = Object.keys(products) %> <% keys.forEach(function(key){ %>
- - ")} title="<%= products[key].img %>" alt="img" src="media/var.png"> - + ")} title="<%= products[key].img %>" alt="img" src="media/var.png">

<%= products[key].name%>

- <% var publicField %> - <% if (products[key].public == "") {publicField = "On sale"} else {publicField = "Hidden"}%> -

<%= publicField%>

+

<%= products[key].status%>

<%= products[key].location%>

£ <%= products[key].price%>

diff --git a/functions/views/product.ejs b/functions/views/product.ejs index 16aa656..990b309 100644 --- a/functions/views/product.ejs +++ b/functions/views/product.ejs @@ -58,8 +58,7 @@
- - +
diff --git a/server.js b/server.js index 59aacdb..9dc3f01 100644 --- a/server.js +++ b/server.js @@ -32,9 +32,9 @@ app.get("/home", function(request, responce) { function homePage(request, responce) { var dbRef = database.ref("/products") - dbRef.orderByChild("public").equalTo("").limitToLast(5).once('value', function(snapshot){ + dbRef.orderByChild("status").equalTo("on-sale").limitToLast(5).once('value', function(snapshot){ var data = {} - data = snapshot.val() + if (snapshot.val()) {data = snapshot.val()} var x = "none" if (request.query.itemAdded == "true") { x = 'block' @@ -139,7 +139,7 @@ app.post('/purchase-api', function(request, responce){ let uid = decodedToken.uid; let product = request.body.item var productRef = database.ref("/products/"+product) - productRef.update({owner:uid, public:"no"}) + productRef.update({owner:uid, status:"sold"}) responce.send({success:true, error:null}) }) .catch(function(error) {