const Auth = require("../models/auth"); const Table = require("../models/table"); const TableStatus = require("../models/tablestatus"); const TableTypes = require("../models/tabletypes"); const User = require("../models/user"); const tableModel = new Table(); const tableTypesModel = new TableTypes(); const tableStatusModel = new TableStatus(); const userModel = new User(); const showIndex = async(req, res, next) => { const { query } = req.query; const authResult = await Auth.getSessionData(req.session.token); var tableResult; if(!query) { tableResult = await tableModel.findAllJoinTypesUsers() || [ ]; } else tableResult = await tableModel.searchJoinTypes(query) || [ ]; const tableStatusResult = await tableStatusModel.findAll() || [ ]; res.render("restaurant/table/index",{ role: authResult.role,tableResult: tableResult,tableStatusData: tableStatusResult }); }; const showCreate = async(req, res, next) => { const authResult = await Auth.getSessionData(req.session.token); const tableTypesResult = await tableTypesModel.findAll() || [ ]; const tableStatusResult = await tableStatusModel.findAll() || [ ]; res.render("restaurant/table/create",{ role: authResult.role,tableTypeData: tableTypesResult,tableStatusData: tableStatusResult }); }; const showManage = async(req, res, next) => { const { id } = req.params; const authResult = await Auth.getSessionData(req.session.token); const tableResult = await tableModel.findOneJoinTypesUsersByID(id) || [ ]; if(tableResult == null) return res.status(404).send("Not Found."); const tableTypesResult = await tableTypesModel.findAll() || [ ]; const tableStatusResult = await tableStatusModel.findAll() || [ ]; const usersResult = await userModel.findAll() || [ ]; console.log(tableResult); res.render("restaurant/table/manage",{ role: authResult.role,tableData: tableResult,tableTypeData: tableTypesResult,tableStatusData: tableStatusResult,usersData: usersResult }); }; const updateTable = async(req, res, next) => { const { id,table_number,table_type,table_status,user_id } = req.body; console.log(id); const tableResult = await tableModel.findOneBy('id',id); if(tableResult == null) return res.status(404).send("Not Found."); await tableModel.updateBy('id',id,{ table_number, table_type, table_status,user_id: user_id == 0 ? null : user_id }); res.redirect("/table/manage/" + id); }; const deleteTable = async(req, res, next) => { const { id } = req.body; const tableResult = await tableModel.findOneBy('id',id); if(tableResult == null) return res.status(404).send("Not Found."); await tableModel.deleteById(id); res.redirect("/table"); }; const createTable = async(req, res, next) => { const { table_number,table_type } = req.body; const result = await tableModel.create({ table_number,table_type }); res.redirect("/table"); }; module.exports = { showIndex, showManage, showCreate, updateTable, deleteTable, createTable, };