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>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>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>Funkční odhlášení přes Authelia</li>
<li>Oprava stahování pizz z Pizza Chefie</li>
</ul> </ul>
</Alert> </Alert>
<h1 className='title'>Dnes je {data.date}</h1> <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; const pizzaSizeIndex = req.body.pizzaSizeIndex;
let pizzy = await getPizzaList(); let pizzy = await getPizzaList();
if (!pizzy) { if (!pizzy) {
pizzy = await downloadPizzy(); throw Error("Selhalo získání seznamu dostupných pizz.");
savePizzaList(pizzy);
} }
if (!pizzy[pizzaIndex]) { if (!pizzy[pizzaIndex]) {
throw Error("Neplatný index 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 { ClientData, PizzaDayState, UdalostEnum, Pizza, PizzaSize, Order, PizzaOrder, Locations, Restaurants, Food, Menu } from "../../types";
import getStorage from "./storage"; import getStorage from "./storage";
import { getMenuSladovnicka, getMenuTechTower, getMenuUMotliku } from "./restaurants"; import { getMenuSladovnicka, getMenuTechTower, getMenuUMotliku } from "./restaurants";
import { downloadPizzy } from "./chefie";
const storage = getStorage(); const storage = getStorage();
@ -29,11 +30,15 @@ export async function getData(): Promise<ClientData> {
/** /**
* Vrátí seznam dostupných pizz pro dnešní den. * 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> { export async function getPizzaList(): Promise<Pizza[] | undefined> {
await initIfNeeded(); await initIfNeeded();
const today = formatDate(getToday()); 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); return Promise.resolve(clientData.pizzaList);
} }
@ -98,7 +103,9 @@ export async function createPizzaDay(creator: string): Promise<ClientData> {
if (clientData.pizzaDay) { if (clientData.pizzaDay) {
throw Error("Pizza day pro dnešní den již existuje"); 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); await storage.setData(today, data);
callNotifikace({ input: { udalost: UdalostEnum.ZAHAJENA_PIZZA, user: creator } }) callNotifikace({ input: { udalost: UdalostEnum.ZAHAJENA_PIZZA, user: creator } })
return data; return data;