import { Request, Response } from "express"; import DynamicQueryBuilder from "../../helpers/dynamicQueryBuilder"; /** * @description get all table metas * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function getAllTableMeta(req: Request, res: Response): Promise { let tableMetas = DynamicQueryBuilder.getAllTableMeta(); res.json(tableMetas); } /** * @description get meta by tablename * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function getTableMetaByTablename(req: Request, res: Response): Promise { const tablename = req.params.tablename; let tableMeta = DynamicQueryBuilder.getTableMeta(tablename); res.json(tableMeta); } /** * @description execute Query * @param req {Request} Express req object * @param res {Response} Express res object * @returns {Promise<*>} */ export async function executeQuery(req: Request, res: Response): Promise { let offset = parseInt((req.query.offset as string) ?? "0"); let count = parseInt((req.query.count as string) ?? "25"); const query = req.body.query; try { let [rows, total] = await DynamicQueryBuilder.buildQuery(query, offset, count).getManyAndCount(); res.json({ rows: rows, total: total, offset: offset, count: count, }); } catch (error) { res.status(500).send({ json: error.sql, code: error.code, msg: error.sqlMessage, }); } }