88 lines
2.7 KiB
JavaScript
88 lines
2.7 KiB
JavaScript
import { formatCurrency } from "./utils.js"
|
|
|
|
document.addEventListener('DOMContentLoaded', function() {
|
|
const urlParams = new URLSearchParams(window.location.search);
|
|
const bookId = urlParams.get('id');
|
|
|
|
if (bookId) {
|
|
loadBookDetails(bookId);
|
|
|
|
const addToCartBtn = document.querySelector('.btn-add-to-cart');
|
|
if (addToCartBtn) {
|
|
addToCartBtn.addEventListener('click', () => addToCart(bookId));
|
|
}
|
|
} else {
|
|
document.getElementById('book-details').innerHTML = `
|
|
<div class="alert alert-danger">Nie znaleziono książki</div>
|
|
`;
|
|
}
|
|
});
|
|
|
|
async function loadBookDetails(bookId) {
|
|
try {
|
|
const response = await fetch(`/api/ksiazki/${bookId}`, {
|
|
credentials: 'include'
|
|
});
|
|
|
|
if (!response.ok) {
|
|
throw new Error('Błąd ładowania szczegółów książki');
|
|
}
|
|
|
|
const book = await response.json();
|
|
displayBookDetails(book);
|
|
} catch (error) {
|
|
console.error('Błąd:', error);
|
|
document.getElementById('book-details').innerHTML = `
|
|
<div class="alert alert-danger">Wystąpił błąd podczas ładowania szczegółów książki</div>
|
|
`;
|
|
}
|
|
}
|
|
|
|
function displayBookDetails(book) {
|
|
const price = formatCurrency(book.cena);
|
|
|
|
document.getElementById('book-title').textContent = book.tytul;
|
|
document.getElementById('book-author').textContent = book.autor;
|
|
document.getElementById('book-price').textContent = price;
|
|
document.getElementById('book-description').textContent = book.opis;
|
|
|
|
const bookCover = document.getElementById('book-cover');
|
|
if (bookCover) {
|
|
bookCover.src = book.obraz_url;
|
|
bookCover.alt = `Okładka książki: ${book.tytul}`;
|
|
}
|
|
}
|
|
|
|
async function addToCart(bookId) {
|
|
const response = await fetch('/api/check-auth');
|
|
const data = await response.json();
|
|
|
|
if (!data.authenticated) {
|
|
window.location.href = '/login.html';
|
|
return;
|
|
}
|
|
|
|
try {
|
|
const response = await fetch('/api/add-to-cart', {
|
|
method: 'POST',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
body: JSON.stringify({
|
|
book_id: parseInt(bookId),
|
|
quantity: 1
|
|
}),
|
|
credentials: 'include'
|
|
});
|
|
|
|
if (response.ok) {
|
|
alert('Książka została dodana do koszyka!');
|
|
} else {
|
|
const errorData = await response.json();
|
|
alert(`Błąd: ${errorData.message || 'Nie udało się dodać do koszyka'}`);
|
|
}
|
|
} catch (error) {
|
|
console.error('Błąd:', error);
|
|
alert('Wystąpił błąd podczas dodawania do koszyka');
|
|
}
|
|
}
|