Přenos změn
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, updateNote } from "./service";
|
||||
import { addPizzaOrder, createPizzaDay, deletePizzaDay, finishPizzaDelivery, finishPizzaOrder, getData, lockPizzaDay, removePizzaOrder, unlockPizzaDay, updateChoice, updateFoodChoice, updateNote } from "./service";
|
||||
import dotenv from 'dotenv';
|
||||
import path from 'path';
|
||||
import { getMenuSladovnicka, getMenuTechTower, getMenuUMotliku } from "./restaurants";
|
||||
@@ -179,6 +179,18 @@ app.post("/api/updateNote", (req, res) => {
|
||||
res.status(200).json(data);
|
||||
});
|
||||
|
||||
app.post("/api/updateFoodChoice", (req, res) => {
|
||||
if (!req.body.login) {
|
||||
throw Error("Nebyl předán login");
|
||||
}
|
||||
if (!req.body.choice) {
|
||||
throw Error("Nebyla předána vybraná restaurace");
|
||||
}
|
||||
const data = updateFoodChoice(req.body.login, req.body.choice, req.body.food);
|
||||
io.emit("message", data);
|
||||
res.status(200).json(data);
|
||||
});
|
||||
|
||||
io.on("connection", (socket) => {
|
||||
console.log(`New client connected: ${socket.id}`);
|
||||
|
||||
|
||||
@@ -240,11 +240,13 @@ export function initIfNeeded() {
|
||||
|
||||
export function removeChoice(login: string, data: ClientData) {
|
||||
for (let key of Object.keys(data.choices)) {
|
||||
if (data.choices[key] && data.choices[key].includes(login)) {
|
||||
const index = data.choices[key].indexOf(login);
|
||||
data.choices[key].splice(index, 1);
|
||||
if (data.choices[key].length == 0) {
|
||||
delete data.choices[key];
|
||||
if (data.choices[key]) {
|
||||
const index = data.choices[key].findIndex(choice => choice.login === login);
|
||||
if (index >= 0) {
|
||||
data.choices[key].splice(index, 1);
|
||||
if (data.choices[key].length == 0) {
|
||||
delete data.choices[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -256,11 +258,11 @@ export function updateChoice(login: string, choice: Locations | null) {
|
||||
const today = formatDate(getToday());
|
||||
let data: ClientData = db.get(today);
|
||||
data = removeChoice(login, data);
|
||||
if (choice !== null) {
|
||||
if (choice) {
|
||||
if (!data.choices?.[choice]) {
|
||||
data.choices[choice] = [];
|
||||
}
|
||||
data.choices[choice].push(login);
|
||||
data.choices[choice].push({ login });
|
||||
}
|
||||
db.set(today, data);
|
||||
return data;
|
||||
@@ -282,4 +284,24 @@ export function updateNote(login: string, note?: string) {
|
||||
myOrder.note = note;
|
||||
db.set(today, clientData);
|
||||
return clientData;
|
||||
}
|
||||
|
||||
export function updateFoodChoice(login: string, location: Locations, foodName?: string) {
|
||||
const today = formatDate(getToday());
|
||||
let clientData: ClientData = db.get(today);
|
||||
|
||||
// TODO smazat
|
||||
console.log("Location", location);
|
||||
console.log("Choices", clientData.choices);
|
||||
const myChoice = clientData.choices[location].find(o => o.login === login);
|
||||
if (!myChoice) {
|
||||
throw Error("V datech nebyla nalezena volba pro uživatele " + login);
|
||||
}
|
||||
if (foodName) {
|
||||
myChoice.foodName = foodName;
|
||||
} else {
|
||||
delete myChoice.foodName;
|
||||
}
|
||||
db.set(today, clientData);
|
||||
return clientData;
|
||||
}
|
||||
@@ -1,7 +1,13 @@
|
||||
import exp from "constants";
|
||||
|
||||
/** Výběr jídla z restaurace jednoho uživatele. */
|
||||
export interface FoodChoice {
|
||||
login: string, // jméno uživatele
|
||||
foodName?: string, // název vybraného jídla
|
||||
}
|
||||
|
||||
export interface Choices {
|
||||
[location: string]: string[],
|
||||
[location: string]: FoodChoice[],
|
||||
}
|
||||
|
||||
/** Velikost konkrétní pizzy */
|
||||
@@ -77,13 +83,13 @@ export enum Restaurants {
|
||||
}
|
||||
|
||||
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',
|
||||
SLADOVNICKA = 'SLADOVNICKA',
|
||||
UMOTLIKU = 'UMOTLIKU',
|
||||
TECHTOWER = 'TECHTOWER',
|
||||
SPSE = 'SPSE',
|
||||
PIZZA = 'PIZZA',
|
||||
OBJEDNAVAM = 'OBJEDNAVAM',
|
||||
NEOBEDVAM = 'NEOBEDVAM',
|
||||
}
|
||||
|
||||
export enum UdalostEnum {
|
||||
|
||||
Reference in New Issue
Block a user