Otypování requestů na API
This commit is contained in:
@@ -1,10 +1,10 @@
|
||||
import express from "express";
|
||||
import express, { Request } from "express";
|
||||
import { getLogin, getTrusted } from "../auth";
|
||||
import { addChoice, addVolatileData, getDateForWeekIndex, getToday, removeChoice, removeChoices, updateDepartureTime, updateNote } from "../service";
|
||||
import { getDayOfWeekIndex, parseToken } from "../utils";
|
||||
import { getWebsocket } from "../websocket";
|
||||
import { callNotifikace } from "../notifikace";
|
||||
import { UdalostEnum } from "../../../types";
|
||||
import { AddChoiceRequest, ChangeDepartureTimeRequest, IDayIndex, RemoveChoiceRequest, RemoveChoicesRequest, UdalostEnum, UpdateNoteRequest } from "../../../types";
|
||||
|
||||
/**
|
||||
* Ověří a vrátí index dne v týdnu z požadavku, za předpokladu, že byl předán, a je zároveň
|
||||
@@ -13,12 +13,12 @@ import { UdalostEnum } from "../../../types";
|
||||
* @param req request
|
||||
* @returns index dne v týdnu
|
||||
*/
|
||||
const parseValidateFutureDayIndex = (req: any) => {
|
||||
const parseValidateFutureDayIndex = (req: Request<{}, any, IDayIndex>) => {
|
||||
if (req.body.dayIndex == null) {
|
||||
throw Error(`Nebyl předán index dne v týdnu.`);
|
||||
}
|
||||
const todayDayIndex = getDayOfWeekIndex(getToday());
|
||||
const dayIndex = parseInt(req.body.dayIndex);
|
||||
const dayIndex = req.body.dayIndex;
|
||||
if (isNaN(dayIndex)) {
|
||||
throw Error(`Neplatný index dne v týdnu: ${req.body.dayIndex}`);
|
||||
}
|
||||
@@ -30,7 +30,7 @@ const parseValidateFutureDayIndex = (req: any) => {
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.post("/addChoice", async (req, res, next) => {
|
||||
router.post("/addChoice", async (req: Request<{}, any, AddChoiceRequest>, res, next) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const trusted = getTrusted(parseToken(req));
|
||||
if (req.body.locationIndex > -1) {
|
||||
@@ -53,7 +53,7 @@ router.post("/addChoice", async (req, res, next) => {
|
||||
return res.status(400); // TODO přidat popis chyby
|
||||
});
|
||||
|
||||
router.post("/removeChoices", async (req, res, next) => {
|
||||
router.post("/removeChoices", async (req: Request<{}, any, RemoveChoicesRequest>, res, next) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const trusted = getTrusted(parseToken(req));
|
||||
let date = undefined;
|
||||
@@ -73,7 +73,7 @@ router.post("/removeChoices", async (req, res, next) => {
|
||||
} catch (e: any) { next(e) }
|
||||
});
|
||||
|
||||
router.post("/removeChoice", async (req, res, next) => {
|
||||
router.post("/removeChoice", async (req: Request<{}, any, RemoveChoiceRequest>, res, next) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const trusted = getTrusted(parseToken(req));
|
||||
let date = undefined;
|
||||
@@ -93,7 +93,7 @@ router.post("/removeChoice", async (req, res, next) => {
|
||||
} catch (e: any) { next(e) }
|
||||
});
|
||||
|
||||
router.post("/updateNote", async (req, res, next) => {
|
||||
router.post("/updateNote", async (req: Request<{}, any, UpdateNoteRequest>, res, next) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const trusted = getTrusted(parseToken(req));
|
||||
const note = req.body.note;
|
||||
@@ -117,7 +117,7 @@ router.post("/updateNote", async (req, res, next) => {
|
||||
} catch (e: any) { next(e) }
|
||||
});
|
||||
|
||||
router.post("/changeDepartureTime", async (req, res, next) => {
|
||||
router.post("/changeDepartureTime", async (req: Request<{}, any, ChangeDepartureTimeRequest>, res, next) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
let date = undefined;
|
||||
if (req.body.dayIndex != null) {
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
import express from "express";
|
||||
import express, { Request } from "express";
|
||||
import { getLogin } from "../auth";
|
||||
import { createPizzaDay, deletePizzaDay, getPizzaList, addPizzaOrder, removePizzaOrder, lockPizzaDay, unlockPizzaDay, finishPizzaOrder, finishPizzaDelivery, updatePizzaDayNote, updatePizzaFee } from "../pizza";
|
||||
import { parseToken } from "../utils";
|
||||
import { getWebsocket } from "../websocket";
|
||||
import { addVolatileData } from "../service";
|
||||
import { AddPizzaRequest, FinishDeliveryRequest, RemovePizzaRequest, UpdatePizzaDayNoteRequest, UpdatePizzaFeeRequest } from "../../../types";
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
/** Založí pizza day pro aktuální den, za předpokladu že dosud neexistuje. */
|
||||
router.post("/create", async (req, res) => {
|
||||
router.post("/create", async (req: Request<{}, any, undefined>, res) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const data = await createPizzaDay(login);
|
||||
res.status(200).json(data);
|
||||
@@ -16,13 +17,13 @@ router.post("/create", async (req, res) => {
|
||||
});
|
||||
|
||||
/** Smaže pizza day pro aktuální den, za předpokladu že existuje. */
|
||||
router.post("/delete", async (req, res) => {
|
||||
router.post("/delete", async (req: Request<{}, any, undefined>, res) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const data = await deletePizzaDay(login);
|
||||
getWebsocket().emit("message", await addVolatileData(data));
|
||||
});
|
||||
|
||||
router.post("/add", async (req, res) => {
|
||||
router.post("/add", async (req: Request<{}, any, AddPizzaRequest>, res) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
if (isNaN(req.body?.pizzaIndex)) {
|
||||
throw Error("Nebyl předán index pizzy");
|
||||
@@ -47,7 +48,7 @@ router.post("/add", async (req, res) => {
|
||||
res.status(200).json({});
|
||||
});
|
||||
|
||||
router.post("/remove", async (req, res) => {
|
||||
router.post("/remove", async (req: Request<{}, any, RemovePizzaRequest>, res) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
if (!req.body?.pizzaOrder) {
|
||||
throw Error("Nebyla předána objednávka");
|
||||
@@ -57,35 +58,35 @@ router.post("/remove", async (req, res) => {
|
||||
res.status(200).json({});
|
||||
});
|
||||
|
||||
router.post("/lock", async (req, res) => {
|
||||
router.post("/lock", async (req: Request<{}, any, undefined>, res) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const data = await lockPizzaDay(login);
|
||||
getWebsocket().emit("message", await addVolatileData(data));
|
||||
res.status(200).json({});
|
||||
});
|
||||
|
||||
router.post("/unlock", async (req, res) => {
|
||||
router.post("/unlock", async (req: Request<{}, any, undefined>, res) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const data = await unlockPizzaDay(login);
|
||||
getWebsocket().emit("message", await addVolatileData(data));
|
||||
res.status(200).json({});
|
||||
});
|
||||
|
||||
router.post("/finishOrder", async (req, res) => {
|
||||
router.post("/finishOrder", async (req: Request<{}, any, undefined>, res) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const data = await finishPizzaOrder(login);
|
||||
getWebsocket().emit("message", await addVolatileData(data));
|
||||
res.status(200).json({});
|
||||
});
|
||||
|
||||
router.post("/finishDelivery", async (req, res) => {
|
||||
router.post("/finishDelivery", async (req: Request<{}, any, FinishDeliveryRequest>, res) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const data = await finishPizzaDelivery(login, req.body.bankAccount, req.body.bankAccountHolder);
|
||||
getWebsocket().emit("message", await addVolatileData(data));
|
||||
res.status(200).json({});
|
||||
});
|
||||
|
||||
router.post("/updatePizzaDayNote", async (req, res, next) => {
|
||||
router.post("/updatePizzaDayNote", async (req: Request<{}, any, UpdatePizzaDayNoteRequest>, res, next) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
try {
|
||||
if (req.body.note && req.body.note.length > 70) {
|
||||
@@ -97,7 +98,7 @@ router.post("/updatePizzaDayNote", async (req, res, next) => {
|
||||
} catch (e: any) { next(e) }
|
||||
});
|
||||
|
||||
router.post("/updatePizzaFee", async (req, res, next) => {
|
||||
router.post("/updatePizzaFee", async (req: Request<{}, any, UpdatePizzaFeeRequest>, res, next) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
if (!req.body.login) {
|
||||
return res.status(400).json({ error: "Nebyl předán login cílového uživatele" });
|
||||
|
||||
@@ -1,17 +1,18 @@
|
||||
import express from "express";
|
||||
import express, { Request, Response } from "express";
|
||||
import { getLogin } from "../auth";
|
||||
import { parseToken } from "../utils";
|
||||
import { getUserVotes, updateFeatureVote } from "../voting";
|
||||
import { FeatureRequest, UpdateFeatureVoteRequest } from "../../../types";
|
||||
|
||||
const router = express.Router();
|
||||
|
||||
router.get("/getVotes", async (req, res) => {
|
||||
router.get("/getVotes", async (req: Request<{}, any, undefined>, res: Response<FeatureRequest[]>) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
const data = await getUserVotes(login);
|
||||
res.status(200).json(data);
|
||||
});
|
||||
|
||||
router.post("/updateVote", async (req, res, next) => {
|
||||
router.post("/updateVote", async (req: Request<{}, any, UpdateFeatureVoteRequest>, res, next) => {
|
||||
const login = getLogin(parseToken(req));
|
||||
if (req.body?.option == null || req.body?.active == null) {
|
||||
res.status(400).json({ error: "Chybné parametry volání" });
|
||||
|
||||
Reference in New Issue
Block a user