Ukládání dat výhradně do DB
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
import { formatDate, getHumanDate, getIsWeekend } from "./utils";
|
||||
import { formatDate, getHumanDate, getHumanTime, getIsWeekend } from "./utils";
|
||||
import { callNotifikace } from "./notifikace";
|
||||
import { generateQr } from "./qr";
|
||||
import { ClientData, PizzaDayState, UdalostEnum, Pizza, PizzaSize, Order, PizzaOrder, Locations } from "../../types";
|
||||
import { ClientData, PizzaDayState, UdalostEnum, Pizza, PizzaSize, Order, PizzaOrder, Locations, Restaurants, Food, Menu } from "../../types";
|
||||
import getStorage from "./storage";
|
||||
import { getMenuSladovnicka, getMenuTechTower, getMenuUMotliku } from "./restaurants";
|
||||
|
||||
const storage = getStorage();
|
||||
|
||||
@@ -51,6 +52,44 @@ export async function savePizzaList(pizzaList: Pizza[]): Promise<ClientData> {
|
||||
return clientData;
|
||||
}
|
||||
|
||||
/**
|
||||
* Vrátí menu dané restaurace pro předaný den. Pokud neexistuje, provede jeho stažení a uložení do DB.
|
||||
*
|
||||
* @param restaurant restaurace
|
||||
* @param date datum
|
||||
* @param mock příznak, zda chceme pouze mock data
|
||||
*/
|
||||
export async function getRestaurantMenu(restaurant: Restaurants, date?: Date, mock?: boolean): Promise<Menu> {
|
||||
await initIfNeeded();
|
||||
const today = formatDate(getToday());
|
||||
const clientData: ClientData = await storage.getData(today);
|
||||
if (!clientData.menus) {
|
||||
clientData.menus = {};
|
||||
storage.setData(today, clientData);
|
||||
}
|
||||
if (!clientData?.menus?.[restaurant]) {
|
||||
if (!clientData.menus[restaurant]) {
|
||||
clientData.menus[restaurant] = {
|
||||
lastUpdate: getHumanTime(new Date()),
|
||||
food: [],
|
||||
};
|
||||
}
|
||||
switch (restaurant) {
|
||||
case Restaurants.SLADOVNICKA:
|
||||
clientData.menus[restaurant].food = await getMenuSladovnicka(date, mock);
|
||||
break;
|
||||
case Restaurants.UMOTLIKU:
|
||||
clientData.menus[restaurant].food = await getMenuUMotliku(date, mock);
|
||||
break;
|
||||
case Restaurants.TECHTOWER:
|
||||
clientData.menus[restaurant].food = await getMenuTechTower(date, mock);
|
||||
break;
|
||||
}
|
||||
storage.setData(today, clientData);
|
||||
}
|
||||
return clientData?.menus?.[restaurant];
|
||||
}
|
||||
|
||||
/**
|
||||
* Vytvoří pizza day pro aktuální den a vrátí data pro klienta.
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user