Možnost zadání preferovaného času odchodu

This commit is contained in:
2023-08-06 18:13:54 +02:00
parent 37542499a9
commit 3f303ea5ea
5 changed files with 72 additions and 11 deletions

View File

@@ -3,7 +3,7 @@ import { Server } from "socket.io";
import bodyParser from "body-parser";
import { fetchPizzy } from "./chefie";
import cors from 'cors';
import { addChoice, addPizzaOrder, createPizzaDay, deletePizzaDay, finishPizzaDelivery, finishPizzaOrder, getData, lockPizzaDay, removeChoice, removeChoices, removePizzaOrder, unlockPizzaDay, updateNote } from "./service";
import { addChoice, addPizzaOrder, createPizzaDay, deletePizzaDay, finishPizzaDelivery, finishPizzaOrder, getData, lockPizzaDay, removeChoice, removeChoices, removePizzaOrder, unlockPizzaDay, updateDepartureTime, updateNote } from "./service";
import dotenv from 'dotenv';
import path from 'path';
import { getMenuSladovnicka, getMenuTechTower, getMenuUMotliku } from "./restaurants";
@@ -238,6 +238,13 @@ app.post("/api/updateNote", async (req, res) => {
res.status(200).json(data);
});
app.post("/api/changeDepartureTime", async (req, res) => {
const login = getLogin(parseToken(req));
const data = await updateDepartureTime(login, req.body?.time);
io.emit("message", data);
res.status(200).json(data);
});
io.on("connection", (socket) => {
console.log(`New client connected: ${socket.id}`);

View File

@@ -372,4 +372,26 @@ export async function updateNote(login: string, note?: string) {
myOrder.note = note;
await storage.setData(today, clientData);
return clientData;
}
/**
* Aktualizuje preferovaný čas odchodu strávníka.
*
* @param login login uživatele
* @param time preferovaný čas odchodu
*/
export async function updateDepartureTime(login: string, time?: string) {
const today = formatDate(getToday());
let clientData: ClientData = await storage.getData(today);
const found = Object.values(clientData.choices).find(location => login in location);
// TODO validace, že se jedná o restauraci
if (found) {
if (!time?.length) {
delete found[login].departureTime;
} else {
found[login].departureTime = time;
}
await storage.setData(today, clientData);
}
return clientData;
}