Možnost přidat k objednávce poznámku
This commit is contained in:
@@ -3,7 +3,7 @@ import { Server } from "socket.io";
|
||||
import bodyParser from "body-parser";
|
||||
import { fetchPizzy } from "./chefie";
|
||||
import cors from 'cors';
|
||||
import { addPizzaOrder, createPizzaDay, deletePizzaDay, finishPizzaDelivery, finishPizzaOrder, getData, lockPizzaDay, removePizzaOrder, unlockPizzaDay, updateChoice } from "./service";
|
||||
import { addPizzaOrder, createPizzaDay, deletePizzaDay, finishPizzaDelivery, finishPizzaOrder, getData, lockPizzaDay, removePizzaOrder, unlockPizzaDay, updateChoice, updateNote } from "./service";
|
||||
import dotenv from 'dotenv';
|
||||
import path from 'path';
|
||||
import { fetchMenus } from "./restaurants";
|
||||
@@ -161,6 +161,18 @@ app.get("/api/qr", (req, res) => {
|
||||
res.end(img);
|
||||
});
|
||||
|
||||
app.post("/api/updateNote", (req, res) => {
|
||||
if (!req.body.login) {
|
||||
throw Error("Nebyl předán login");
|
||||
}
|
||||
if (req.body.note && req.body.note.length > 100) {
|
||||
throw Error("Poznámka může mít maximálně 100 znaků");
|
||||
}
|
||||
const data = updateNote(req.body.login, req.body.note);
|
||||
io.emit("message", data);
|
||||
res.status(200).json(data);
|
||||
});
|
||||
|
||||
io.on("connection", (socket) => {
|
||||
console.log(`New client connected: ${socket.id}`);
|
||||
|
||||
|
||||
@@ -262,4 +262,22 @@ export function updateChoice(login: string, choice: Locations | null) {
|
||||
}
|
||||
db.set(today, data);
|
||||
return data;
|
||||
}
|
||||
|
||||
export function updateNote(login: string, note?: string) {
|
||||
const today = formatDate(getToday());
|
||||
let clientData: ClientData = db.get(today);
|
||||
if (!clientData.pizzaDay) {
|
||||
throw Error("Pizza day pro dnešní den neexistuje");
|
||||
}
|
||||
if (clientData.pizzaDay.state !== PizzaDayState.CREATED) {
|
||||
throw Error("Pizza day není ve stavu " + PizzaDayState.CREATED);
|
||||
}
|
||||
const myOrder = clientData.pizzaDay.orders.find(o => o.customer === login);
|
||||
if (!myOrder || !myOrder.pizzaList.length) {
|
||||
throw Error("Pizza day neobsahuje žádné objednávky uživatele " + login);
|
||||
}
|
||||
myOrder.note = note;
|
||||
db.set(today, clientData);
|
||||
return clientData;
|
||||
}
|
||||
@@ -34,6 +34,7 @@ export interface Order {
|
||||
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 */
|
||||
|
||||
Reference in New Issue
Block a user