This commit is contained in:
Max Hunt 2020-04-27 15:39:53 +01:00
parent c58b9ef1d8
commit f61aa337da
4 changed files with 83 additions and 2 deletions

View File

@ -196,4 +196,26 @@ app.post('/place-on-sale-api', function(request, responce){
} }
}) })
app.post('/ship-api', function(request, responce){
if (request.body.item && request.body.user) {
admin.auth().verifyIdToken(request.body.user)
.then(function(decodedToken) {
let uid = decodedToken.uid;
let product = request.body.item
var productRef = database.ref("/products/"+product)
productRef.update({status:"shipped"})
.then(function(){
responce.send({success:true, error:null})
})
.catch(e => {console.log(e)})
})
.catch(function(error) {
responce.send({ error: 'invalid auth token' })
});
}
else {
responce.send({ error: 'invalid data' })
}
})
exports.application = functions.https.onRequest(app) exports.application = functions.https.onRequest(app)

View File

@ -229,6 +229,41 @@ function place_item_on_sale() {
.catch(e => {console.log(e)}) .catch(e => {console.log(e)})
} }
function ship_item() {
firebase.auth().currentUser.getIdToken().then(function(idToken) {
var item_id_element = document.getElementById("productID")
var item_id = item_id_element.getAttribute("product_id")
var place_on_sale_button = document.getElementById("shipBtn")
const url = 'ship-api'
let data = {
item: item_id,
user: idToken
}
let postData = {
method: 'POST',
body: JSON.stringify(data),
headers: {'Content-Type': 'application/json'}
}
fetch(url, postData)
.then(response => response.json())
.then(function(result){
console.log(result)
if (result.success == true) {
place_on_sale_button.setAttribute("style", "background: #00DD00; width:200px;")
place_on_sale_button.innerHTML = "Item shipped!"
place_on_sale_button.disabled = true
}
else {
place_on_sale_button.setAttribute("style", "background: red;")
place_on_sale_button.disabled = true
place_on_sale_button.innerHTML = "ERROR"
console.log(result.error)
}
})
})
.catch(e => {console.log(e)})
}
function my_product(productID) { function my_product(productID) {
firebase.auth().currentUser.getIdToken().then(function(idToken) { firebase.auth().currentUser.getIdToken().then(function(idToken) {
window.location.replace("my-product?uToken=" + idToken + '&productid=' + productID) window.location.replace("my-product?uToken=" + idToken + '&productid=' + productID)

View File

@ -71,11 +71,13 @@
<p>Status: <%= item.status %></p> <p>Status: <%= item.status %></p>
<p>Price: £<%= item.price %></p> <p>Price: £<%= item.price %></p>
<div class="product-mgmt-buttons"> <div class="product-mgmt-buttons">
<div class="edit-btn"><button onclick={edit_item()} id="editBtn">Edit</button> </div> <% var shipbtnStyle = ""%>
<% if (item.status == "shipped") {shipbtnStyle = "visibility:hidden;"} else {shipbtnStyle = "visibility:all;"}%>
<div class="edit-btn" style=<%= shipbtnStyle%>><button onclick={edit_item()} id="editBtn">Edit</button> </div>
<% var sellbtnStyle = ""%> <% var sellbtnStyle = ""%>
<% if (item.status == "sold") {sellbtnStyle = "visibility:all;"} else {sellbtnStyle = "visibility:hidden;"}%> <% if (item.status == "sold") {sellbtnStyle = "visibility:all;"} else {sellbtnStyle = "visibility:hidden;"}%>
<div class="sell-btn" style=<%= sellbtnStyle%>><button onclick={place_item_on_sale()} id="sellBtn">Sell</button> </div> <div class="sell-btn" style=<%= sellbtnStyle%>><button onclick={place_item_on_sale()} id="sellBtn">Sell</button> </div>
<div class="ship-btn"><button onclick={z()} id="shipBtn">Ship</button> </div> <div class="ship-btn" style=<%= shipbtnStyle%>><button onclick={ship_item()} id="shipBtn">Ship</button> </div>
</div> </div>
</div> </div>

View File

@ -202,6 +202,28 @@ app.post('/place-on-sale-api', function(request, responce){
} }
}) })
app.post('/ship-api', function(request, responce){
if (request.body.item && request.body.user) {
admin.auth().verifyIdToken(request.body.user)
.then(function(decodedToken) {
let uid = decodedToken.uid;
let product = request.body.item
var productRef = database.ref("/products/"+product)
productRef.update({status:"shipped"})
.then(function(){
responce.send({success:true, error:null})
})
.catch(e => {console.log(e)})
})
.catch(function(error) {
responce.send({ error: 'invalid auth token' })
});
}
else {
responce.send({ error: 'invalid data' })
}
})
var port = 5000 var port = 5000
app.listen(port, function() { app.listen(port, function() {