Možnost náhledu a výběru na další dny v týdnu

This commit is contained in:
2023-09-06 19:22:19 +02:00
parent 5379c21203
commit 832d3089ec
9 changed files with 766 additions and 304 deletions

View File

@@ -1,6 +1,8 @@
import axios from "axios";
import { load } from 'cheerio';
import { Food } from "../../types";
import { getMenuSladovnickaMock, getMenuTechTowerMock, getMenuUMotlikuMock } from "./mock";
import { getDayOfWeekIndex } from "./utils";
// Fráze v názvech jídel, které naznačují že se jedná o polévku
const SOUP_NAMES = ['polévka', 'česnečka', 'česnekový krém', 'cibulačka', 'vývar']
@@ -35,17 +37,6 @@ const sanitizeText = (text: string): string => {
return text.replace('\t', '').trim();
}
/**
* Vrátí index dne v týdnu, kde pondělí=0, neděle=6
*
* @param date datum
* @returns index dne v týdnu
*/
const getDayOfWeekIndex = (date: Date) => {
// https://stackoverflow.com/a/4467559
return (((date.getDay() - 1) % 7) + 7) % 7;
}
/**
* Stáhne a vrátí aktuální HTML z dané URL.
*
@@ -65,32 +56,7 @@ const getHtml = async (url: string): Promise<any> => {
*/
export const getMenuSladovnicka = async (date: Date = new Date(), mock: boolean = false): Promise<Food[]> => {
if (mock) {
return [
{
amount: "0,25l",
name: "Zelná polévka s klobásou",
price: "35\xA0Kč",
isSoup: true,
},
{
amount: "150g",
name: "Hovězí na česneku s bramborovým knedlíkem",
price: "135\xA0Kč",
isSoup: false,
},
{
amount: "250g",
name: "Přírodní holandský řízek s bramborovou kaší, rajčatový salát",
price: "135\xA0Kč",
isSoup: false,
},
{
amount: "350g",
name: "Bagel s vinnou klobásou, cibulový konfit, kysané zelí, slanina a hořčicová mayo, hranolky, curry omáčka",
price: "135\xA0Kč",
isSoup: false,
}
]
return getMenuSladovnickaMock(date);
}
const todayDayIndex = getDayOfWeekIndex(date);
if (todayDayIndex == 5 || todayDayIndex == 6) { // Víkend
@@ -185,33 +151,7 @@ export const getMenuSladovnicka = async (date: Date = new Date(), mock: boolean
*/
export const getMenuUMotliku = async (date: Date = new Date(), mock: boolean = false): Promise<Food[]> => {
if (mock) {
return [
{
amount: "0,33l",
name: "Hovězí vývar s nudlemi",
price: "35\xA0Kč",
isSoup: true,
},
{
amount: "150g",
name: "Opečený párek, čočka, sázené vejce, okurka",
price: "135\xA0Kč",
isSoup: false,
},
{
amount: "150g",
name: "Hovězí líčka na červeném víně, bramborová kaše",
price: "145\xA0Kč",
isSoup: false,
},
{
amount: "150g",
name: "Tortilla s trhaným kuřecím masem, uzeným sýrem, dipem a kukuřicí, míchaný salát",
price: "135\xA0Kč",
isSoup: false,
},
]
return getMenuUMotlikuMock(date);
}
const todayDayIndex = getDayOfWeekIndex(date);
if (todayDayIndex == 5 || todayDayIndex == 6) { // Víkend
@@ -275,26 +215,7 @@ export const getMenuUMotliku = async (date: Date = new Date(), mock: boolean = f
*/
export const getMenuTechTower = async (date: Date = new Date(), mock: boolean = false) => {
if (mock) {
return [
{
amount: "-",
name: "Bavorská gulášová polévka s kroupami",
price: "40\xA0Kč",
isSoup: true,
},
{
amount: "-",
name: "Vepřové výpečky, kedlubnové zelí, bramborový knedlík",
price: "120\xA0Kč",
isSoup: false,
},
{
amount: "-",
name: "Hambuger Black Angus s čedarem a slaninou, cibulové kroužky",
price: "220\xA0Kč",
isSoup: false,
}
]
return getMenuTechTowerMock(date);
}
const todayDayIndex = getDayOfWeekIndex(date);
if (todayDayIndex == 5 || todayDayIndex == 6) { // Víkend