import { CustomError } from '../error' export default async ( req: Record, $bq ): Promise> => { try { const entity = req.params.entity const dataset = `data_mart_${entity}` const sql = ` SELECT column_name, table_name FROM ${dataset}.INFORMATION_SCHEMA.COLUMNS ` const result = await $bq.runQuery({ sql }) let schema = {} result.forEach((row) => { let { column_name, table_name } = row table_name = table_name.replace('mvw_', '') if (!schema[table_name]) { schema[table_name] = [] } schema[table_name].push(column_name) }) return schema } catch (error: any) { throw new CustomError(`[getBigQuerySchema] ${error.message}`, 400) } }