Oprava stahování pizz pro Pizza day

This commit is contained in:
Martin Berka 2023-08-10 21:47:56 +02:00
parent e78f9cfd3a
commit 45bd84f96f
3 changed files with 11 additions and 4 deletions

View File

@ -284,6 +284,7 @@ function App() {
<li>Oprava přesměrování při přihlášení přes Authelia</li>
<li>Zobrazení jména uživatele místo loginu při přihlášení přes Authelia</li>
<li>Funkční odhlášení přes Authelia</li>
<li>Oprava stahování pizz z Pizza Chefie</li>
</ul>
</Alert>
<h1 className='title'>Dnes je {data.date}</h1>

View File

@ -152,8 +152,7 @@ app.post("/api/addPizza", async (req, res) => {
const pizzaSizeIndex = req.body.pizzaSizeIndex;
let pizzy = await getPizzaList();
if (!pizzy) {
pizzy = await downloadPizzy();
savePizzaList(pizzy);
throw Error("Selhalo získání seznamu dostupných pizz.");
}
if (!pizzy[pizzaIndex]) {
throw Error("Neplatný index pizzy: " + pizzaIndex);

View File

@ -4,6 +4,7 @@ import { generateQr } from "./qr";
import { ClientData, PizzaDayState, UdalostEnum, Pizza, PizzaSize, Order, PizzaOrder, Locations, Restaurants, Food, Menu } from "../../types";
import getStorage from "./storage";
import { getMenuSladovnicka, getMenuTechTower, getMenuUMotliku } from "./restaurants";
import { downloadPizzy } from "./chefie";
const storage = getStorage();
@ -29,11 +30,15 @@ export async function getData(): Promise<ClientData> {
/**
* Vrátí seznam dostupných pizz pro dnešní den.
* Stáhne je, pokud je pro dnešní den nemá.
*/
export async function getPizzaList(): Promise<Pizza[] | undefined> {
await initIfNeeded();
const today = formatDate(getToday());
const clientData: ClientData = await storage.getData(today);
let clientData: ClientData = await storage.getData(today);
if (!clientData.pizzaList) {
clientData = await savePizzaList(await downloadPizzy());
}
return Promise.resolve(clientData.pizzaList);
}
@ -98,7 +103,9 @@ export async function createPizzaDay(creator: string): Promise<ClientData> {
if (clientData.pizzaDay) {
throw Error("Pizza day pro dnešní den již existuje");
}
const data: ClientData = { pizzaDay: { state: PizzaDayState.CREATED, creator, orders: [] }, ...clientData };
// TODO berka rychlooprava, vyřešit lépe - stahovat jednou, na jediném místě!
const pizzaList = await getPizzaList();
const data: ClientData = { pizzaDay: { state: PizzaDayState.CREATED, creator, orders: [] }, pizzaList, ...clientData };
await storage.setData(today, data);
callNotifikace({ input: { udalost: UdalostEnum.ZAHAJENA_PIZZA, user: creator } })
return data;