Zbavení se duplicitních Typescript typů
This commit is contained in:
+3
-2
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "luncher-server",
|
||||
"name": "@luncher/server",
|
||||
"version": "1.0.0",
|
||||
"main": "src/index.ts",
|
||||
"license": "MIT",
|
||||
@@ -25,7 +25,8 @@
|
||||
"dotenv": "^16.1.3",
|
||||
"express": "^4.18.2",
|
||||
"jsonwebtoken": "^9.0.0",
|
||||
"@luncher/api": "1.0.0",
|
||||
"simple-json-db": "^2.0.0",
|
||||
"socket.io": "^4.6.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
+3
-3
@@ -8,10 +8,10 @@ import dotenv from 'dotenv';
|
||||
import path from 'path';
|
||||
import { getMenuSladovnicka, getMenuTechTower, getMenuUMotliku } from "./restaurants";
|
||||
import { getQr } from "./qr";
|
||||
import { Restaurants } from "./types";
|
||||
import { generateToken, getLogin, verify } from "./auth";
|
||||
import { Restaurants } from "@luncher/api/dist/Types";
|
||||
|
||||
const ENVIRONMENT = process.env.NODE_ENV || 'production'
|
||||
const ENVIRONMENT = process.env.NODE_ENV || 'production';
|
||||
dotenv.config({ path: path.resolve(__dirname, `../.env.${ENVIRONMENT}`) });
|
||||
|
||||
const app = express();
|
||||
@@ -95,7 +95,7 @@ app.get("/api/data", (req, res) => {
|
||||
|
||||
/** Vrátí obědové menu pro dostupné podniky. */
|
||||
app.get("/api/food", async (req, res) => {
|
||||
const mock = !!req.query?.mock;
|
||||
const mock = !!process.env.MOCK_DATA;
|
||||
const date = new Date();
|
||||
const data = {
|
||||
[Restaurants.SLADOVNICKA]: await getMenuSladovnicka(date, mock),
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/** Notifikace pro gotify*/
|
||||
import axios, { AxiosError, AxiosResponse } from 'axios';
|
||||
import { GotifyServer, NotififaceInput, NotifikaceData, UdalostEnum } from "./types";
|
||||
import { GotifyServer, NotififaceInput, NotifikaceData } from '@luncher/api/dist/Types';
|
||||
import axios, { AxiosError } from 'axios';
|
||||
import dotenv from 'dotenv';
|
||||
import path from 'path';
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ import path from "path";
|
||||
import fs from "fs";
|
||||
import { load } from 'cheerio';
|
||||
import { formatDate } from "./utils";
|
||||
import { Food } from "./types";
|
||||
import { Food } from "@luncher/api/dist/Types";
|
||||
|
||||
// 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']
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { ClientData, Locations, Order, Pizza, PizzaDayState, PizzaOrder, PizzaSize, UdalostEnum } from "./types";
|
||||
import { db } from "./database";
|
||||
import { formatDate, getHumanDate, getIsWeekend } from "./utils";
|
||||
import { callNotifikace } from "./notifikace";
|
||||
import { generateQr } from "./qr";
|
||||
import { ClientData, PizzaDayState, UdalostEnum, Pizza, PizzaSize, Order, PizzaOrder, Locations } from "@luncher/api/dist/Types";
|
||||
|
||||
/** Vrátí dnešní datum, případně fiktivní datum pro účely vývoje a testování. */
|
||||
function getToday(): Date {
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
import exp from "constants";
|
||||
|
||||
export interface Choices {
|
||||
[location: string]: string[],
|
||||
}
|
||||
|
||||
/** Velikost konkrétní pizzy */
|
||||
export interface PizzaSize {
|
||||
varId: number, // unikátní ID varianty pizzy
|
||||
size: string, // velikost pizzy, např. "30cm"
|
||||
pizzaPrice: number, // cena samotné pizzy
|
||||
boxPrice: number, // cena krabice
|
||||
price: number, // celková cena (pizza + krabice)
|
||||
}
|
||||
|
||||
/** Jedna konkrétní pizza */
|
||||
export interface Pizza {
|
||||
name: string, // název pizzy
|
||||
ingredients: string[], // seznam ingrediencí
|
||||
sizes: PizzaSize[], // dostupné velikosti pizzy
|
||||
}
|
||||
|
||||
/** Objednávka jedné konkrétní pizzy */
|
||||
export interface PizzaOrder {
|
||||
varId: number, // unikátní ID varianty pizzy
|
||||
name: string, // název pizzy
|
||||
size: string, // velikost pizzy jako string (30cm)
|
||||
price: number, // cena pizzy v Kč, včetně krabice
|
||||
}
|
||||
|
||||
/** Celková objednávka jednoho člověka */
|
||||
export interface Order {
|
||||
customer: string, // jméno objednatele
|
||||
pizzaList: PizzaOrder[], // seznam objednaných pizz
|
||||
totalPrice: number, // celková cena všech objednaných pizz a krabic
|
||||
hasQr?: boolean, // true, pokud je k objednávce vygenerován QR kód pro platbu
|
||||
note?: string, // volitelná uživatelská poznámka k objednávce
|
||||
}
|
||||
|
||||
/** Stav pizza dne */
|
||||
export enum PizzaDayState {
|
||||
NOT_CREATED, // Pizza day nebyl založen
|
||||
CREATED, // Pizza day je založen
|
||||
LOCKED, // Objednávky uzamčeny
|
||||
ORDERED, // Pizzy objednány
|
||||
DELIVERED // Pizzy doručeny
|
||||
}
|
||||
|
||||
/** Informace o pizza day pro dnešní den */
|
||||
interface PizzaDay {
|
||||
state: PizzaDayState, // stav pizza dne
|
||||
creator: string, // jméno zakladatele
|
||||
orders: Order[], // seznam objednávek jednotlivých lidí
|
||||
}
|
||||
|
||||
/** Veškerá data pro zobrazení na klientovi */
|
||||
export interface ClientData {
|
||||
date: string, // dnešní datum pro zobrazení
|
||||
isWeekend: boolean, // příznak, zda je dnes víkend
|
||||
choices: Choices, // seznam voleb
|
||||
pizzaDay?: PizzaDay, // pizza day pro dnešní den, pokud existuje
|
||||
}
|
||||
|
||||
/** Jídlo z obědového menu restaurace. */
|
||||
export interface Food {
|
||||
amount?: string, // množství standardní porce, např. 0,33l nebo 150g
|
||||
name: string, // název/popis jídla
|
||||
price: string, // cena ve formátu '135 Kč'
|
||||
isSoup: boolean, // příznak, zda se jedná o polévku
|
||||
}
|
||||
|
||||
/** Výčtový typ pro restaurace, pro které umíme získat a parsovat obědové menu. */
|
||||
export enum Restaurants {
|
||||
SLADOVNICKA = 'sladovnicka',
|
||||
UMOTLIKU = 'uMotliku',
|
||||
TECHTOWER = 'techTower',
|
||||
}
|
||||
|
||||
export enum Locations {
|
||||
SLADOVNICKA = 'Sladovnická',
|
||||
UMOTLIKU = 'U Motlíků',
|
||||
TECHTOWER = 'TechTower',
|
||||
SPSE = 'SPŠE',
|
||||
PIZZA = 'Pizza day',
|
||||
OBJEDNAVAM = 'Budu objednávat',
|
||||
NEOBEDVAM = 'Mám vlastní/neobědvám',
|
||||
}
|
||||
|
||||
export enum UdalostEnum {
|
||||
ZAHAJENA_PIZZA = "Zahájen pizza day",
|
||||
OBJEDNANA_PIZZA = "Objednána pizza"
|
||||
}
|
||||
|
||||
export interface NotififaceInput {
|
||||
udalost: UdalostEnum,
|
||||
user: string,
|
||||
}
|
||||
|
||||
export interface NotifikaceData {
|
||||
input: NotififaceInput,
|
||||
gotify?: boolean,
|
||||
teams?: boolean,
|
||||
}
|
||||
|
||||
export interface GotifyServer {
|
||||
server: string;
|
||||
api_keys: string[];
|
||||
}
|
||||
@@ -788,6 +788,9 @@ lru-cache@^6.0.0:
|
||||
dependencies:
|
||||
yallist "^4.0.0"
|
||||
|
||||
"luncher-api@file:./../api":
|
||||
version "1.0.0"
|
||||
|
||||
make-error@^1.1.1:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
|
||||
|
||||
Reference in New Issue
Block a user