import { Response } from "express"; import { AuthRequest } from "../middlewares/authMiddleware"; import { deleteCategory as _deleteCategory, updateCategory as _updateCategory, deleteProduct as _deleteProduct, updateProduct as _updateProduct, getCategories as _getCategories, getProducts as _getProducts, addCategory as _addCategory, addProduct as _addProduct, updateMenu as _updateMenu, deleteMenu as _deleteMenu, getMenus as _getMenus, addMenu as _addMenu } from "../actions/menu"; //#region Category Controllers export const addCategory = async (req: AuthRequest, res: Response): Promise => { const categoryLimit = req.context!.planDetails?.categoryLimit ?? 0; const result = await _addCategory(req.context!.userID, categoryLimit, req.body); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); }; export const deleteCategory = async (req: AuthRequest, res: Response): Promise => { const result = await _deleteCategory(req.context!.userID, req.body); res.status(result.code) .json({ message: result.message, code: result.code }); }; export const updateCategory = async (req: AuthRequest, res: Response): Promise => { const result = await _updateCategory(req.context!.userID, req.body); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); }; export const getCategories = async (req: AuthRequest, res: Response): Promise => { const result = await _getCategories(req.context!.userID); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }), }); }; //#endregion //#region Product Controllers export const addProduct = async (req: AuthRequest, res: Response): Promise => { const productLimit = req.context!.planDetails?.productLimit ?? 0; const result = await _addProduct(req.context!.userID, productLimit, req.body); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); }; export const getProducts = async (req: AuthRequest, res: Response): Promise => { const result = await _getProducts(req.context!.userID, req.query); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); }; export const updateProduct = async (req: AuthRequest, res: Response): Promise => { const result = await _updateProduct(req.context!.userID, req.body); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); }; export const deleteProduct = async (req: AuthRequest, res: Response): Promise => { const result = await _deleteProduct(req.context!.userID, req.body); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); }; // #endregion //#region Menu Controllers export const addMenu = async (req: AuthRequest, res: Response): Promise => { const menuLimit = req.context!.planDetails?.menuLimit ?? 0; const result = await _addMenu(req.context!.userID, menuLimit, req.body); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); }; export const getMenus = async (req: AuthRequest, res: Response): Promise => { const result = await _getMenus(req.context!.userID, req.query); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); }; export const deleteMenu = async (req: AuthRequest, res: Response): Promise => { const result = await _deleteMenu(req.context!.userID, req.body); res.status(result.code) .json({ message: result.message, code: result.code }); }; export const updateMenu = async (req: AuthRequest, res: Response): Promise => { const result = await _updateMenu(req.context!.userID, req.body); res.status(result.code) .json({ message: result.message, code: result.code, ...(result.payload && { payload: result.payload }) }); }; //#endregion