Přesun autentizace na server

This commit is contained in:
2023-06-28 07:24:26 +02:00
parent 47fbe4173d
commit e81c7d09a3
15 changed files with 297 additions and 134 deletions

View File

@@ -31,8 +31,11 @@ function App() {
const choiceRef = useRef<HTMLSelectElement>(null);
const poznamkaRef = useRef<HTMLInputElement>(null);
// Prvotní načtení aktuálního stavu
// Načtení dat po přihlášení
useEffect(() => {
if (!auth || !auth.login) {
return
}
getPizzy().then(pizzy => {
setPizzy(pizzy);
});
@@ -42,7 +45,7 @@ function App() {
getFood().then(food => {
setFood(food);
})
}, []);
}, [auth, auth?.login]);
// Registrace socket eventů
useEffect(() => {
@@ -91,13 +94,13 @@ function App() {
const changeChoice = async (event: React.ChangeEvent<HTMLSelectElement>) => {
const index = Object.values(Locations).indexOf(event.target.value as unknown as Locations);
if (auth?.login) {
await updateChoice(auth.login, index > -1 ? index : null);
await updateChoice(index > -1 ? index : null);
}
}
const removeChoice = async (key: string) => {
if (auth?.login) {
await updateChoice(auth.login, null);
await updateChoice(null);
if (choiceRef?.current?.value) {
choiceRef.current.value = "";
}
@@ -126,24 +129,20 @@ function App() {
const s = value.split('|');
const pizzaIndex = Number.parseInt(s[0]);
const pizzaSizeIndex = Number.parseInt(s[1]);
await addPizza(auth.login, pizzaIndex, pizzaSizeIndex);
await addPizza(pizzaIndex, pizzaSizeIndex);
}
}
const handlePizzaDelete = async (pizzaOrder: PizzaOrder) => {
if (auth?.login) {
await removePizza(auth?.login, pizzaOrder);
}
await removePizza(pizzaOrder);
}
const handlePoznamkaChange = async () => {
if (auth?.login) {
if (poznamkaRef.current?.value && poznamkaRef.current.value.length > 100) {
alert("Poznámka může mít maximálně 100 znaků");
return;
}
updateNote(auth.login, poznamkaRef.current?.value);
if (poznamkaRef.current?.value && poznamkaRef.current.value.length > 100) {
alert("Poznámka může mít maximálně 100 znaků");
return;
}
updateNote(poznamkaRef.current?.value);
}
// const addToCart = async () => {
@@ -205,10 +204,7 @@ function App() {
<Alert variant={'primary'}>
Poslední změny:
<ul>
<li>Nová žárovka zatím funguje</li>
<li>Funkční generování a zobrazení QR kódů pro Pizza day</li>
<li>Možnost zadat k Pizza day objednávce poznámku</li>
<li>Zbavení se Food API, přepsání a zahrnutí parseru do serveru</li>
<li>Zavedení JWT, přesun autentizace na server</li>
</ul>
</Alert>
<h1 className='title'>Dnes je {data.date}</h1>
@@ -260,7 +256,7 @@ function App() {
<div style={{ textAlign: 'center' }}>
<p>Pro dnešní den není aktuálně založen Pizza day.</p>
<Button onClick={async () => {
await createPizzaDay(auth.login);
await createPizzaDay();
}}>Založit Pizza day</Button>
</div>
}
@@ -279,10 +275,10 @@ function App() {
data.pizzaDay.creator === auth.login &&
<>
<Button className='danger mb-3' title="Smaže kompletně pizza day, včetně dosud zadaných objednávek." onClick={async () => {
await deletePizzaDay(auth.login);
await deletePizzaDay();
}}>Smazat Pizza day</Button>
<Button className='mb-3' style={{ marginLeft: '20px' }} title={noOrders ? "Nelze uzamknout - neexistuje žádná objednávka" : "Zamezí přidávat/odebírat objednávky. Použij před samotným objednáním, aby již nemohlo docházet ke změnám."} disabled={noOrders} onClick={async () => {
await lockPizzaDay(auth.login);
await lockPizzaDay();
}}>Uzamknout</Button>
</>
}
@@ -295,13 +291,13 @@ function App() {
{data.pizzaDay.creator === auth.login &&
<>
<Button className='danger mb-3' title="Umožní znovu editovat objednávky." onClick={async () => {
await unlockPizzaDay(auth.login);
await unlockPizzaDay();
}}>Odemknout</Button>
{/* <Button className='danger mb-3' style={{ marginLeft: '20px' }} onClick={async () => {
await addToCart();
}}>Přidat vše do košíku</Button> */}
<Button className='danger mb-3' style={{ marginLeft: '20px' }} title={noOrders ? "Nelze objednat - neexistuje žádná objednávka" : "Použij po objednání. Objednávky zůstanou zamčeny."} disabled={noOrders} onClick={async () => {
await finishOrder(auth.login);
await finishOrder();
}}>Objednáno</Button>
</>
}
@@ -314,10 +310,10 @@ function App() {
{data.pizzaDay.creator === auth.login &&
<div>
<Button className='danger mb-3' title="Vrátí stav do předchozího kroku (před objednáním)." onClick={async () => {
await lockPizzaDay(auth.login);
await lockPizzaDay();
}}>Vrátit do "uzamčeno"</Button>
<Button className='danger mb-3' style={{ marginLeft: '20px' }} title="Nastaví stav na 'Doručeno' - koncový stav." onClick={async () => {
await finishDelivery(auth.login, bank?.bankAccount, bank?.holderName);
await finishDelivery(bank?.bankAccount, bank?.holderName);
}}>Doručeno</Button>
</div>
}
@@ -357,7 +353,7 @@ function App() {
<div className='qr-code'>
<h3>QR platba</h3>
<div>Částka: {myOrder.totalPrice} </div>
<img src={getQrUrl(auth.login)} alt='QR kód' />
<img src={getQrUrl()} alt='QR kód' />
<p>Generování QR kódů je v experimentální fázi - doporučujeme si překontrolovat údaje před odesláním platby.</p>
</div>
}