Files
pizzaexpress-webapp/script.js

125 lines
3.6 KiB
JavaScript

const apiUrl = "https://localhost:7297"; // Inserire qui l'URL del web server Kestrel
function listPizze(){
let reply;
const requestOptions = {
method: "GET",
redirect: "follow"
};
fetch(apiUrl + "/api/pizze", requestOptions)
.then((response) => response.json())
.then((pizze) => {
// Creiamo la tabella
let table = '<table><tr><th>ID</th><th>Nome</th><th>Prezzo</th><th>Note</th><th>Azioni</th></tr>';
// Aggiungiamo ogni pizza come riga della tabella
pizze.pizze.forEach(pizza => {
table += `<tr>
<td>${pizza.id}</td>
<td>${pizza.nome}</td>
<td>${pizza.prezzo.toFixed(2)}€</td>
<td>${pizza.note}</td>
<td><button class="editBtn" onclick="editPizza(${pizza.id})">Modifica</button>
<button class="delBtn" onclick="deletePizza(${pizza.id})">X</button></td>
</tr>`;
});
table += '</table>';
// Inseriamo la tabella nel div
document.getElementById('tabellaPizze').innerHTML = table;
})
.catch((error) => {
console.error(error)
alert("Errore nel recupero delle pizze, controllare la console per dettagli sull'errore.");
});
}
function deletePizza(id){
const requestOptions = {
method: "DELETE",
redirect: "follow"
};
fetch(apiUrl + "/api/pizze/" + id, requestOptions)
.then((response) => response.text())
.then((result) => {
alert("Pizza eliminata con successo!");
listPizze();
})
.catch((error) => {
console.error(error)
alert("Errore nell'eliminazione della pizza, controllare la console per dettagli sull'errore.");
});
}
function editPizza(id){
let prezzo = prompt("Inserire prezzo da assegnare");
if (prezzo){
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
const raw = JSON.stringify({
"prezzo": prezzo
});
const requestOptions = {
method: "PUT",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch(apiUrl + "/api/pizze/" + id, requestOptions)
.then((response) => response.text())
.then((result) => {
alert("Pizza modificata con successo!");
listPizze();
})
.catch((error) => {
console.error(error)
alert("Errore nella modifica, controllare la console per dettagli sull'errore.");
});
}
}
function addPizza(nome, prezzo, note){
const myHeaders = new Headers();
myHeaders.append("Content-Type", "application/json");
const raw = JSON.stringify({
"nome": nome,
"prezzo": prezzo,
"note": note
});
const requestOptions = {
method: "POST",
headers: myHeaders,
body: raw,
redirect: "follow"
};
fetch(apiUrl + "/api/pizze", requestOptions)
.then((response) => response.text())
.then((result) => {
alert("Pizza aggiunta con successo! Aggiorna la lista per mostrarla in pagina.");
window.close();
})
.catch((error) => {
console.error(error)
alert("Errore nell'aggiunta, controllare la console per dettagli sull'errore.");
});
}
function handleAddPizza(event){
event.preventDefault();
const nome = document.getElementById("name").value;
const prezzo = document.getElementById("price").value;
const note = document.getElementById("note").value;
addPizza(nome, prezzo, note);
}