29 lines
1.0 KiB
Python
29 lines
1.0 KiB
Python
|
|
from typing import List
|
|
from sqlalchemy.orm import Session
|
|
|
|
from db.models.metadata import MetaDataColumn, MetaDataTable
|
|
from db.schemas.metadata import MetaDataTableResponse, MetaDataColumnResponse
|
|
|
|
|
|
def get_tables(db: Session) -> List[MetaDataTableResponse]:
|
|
tables = db.query(MetaDataTable).all()
|
|
results: List[MetaDataTableResponse] = [MetaDataTableResponse(id=table.id, name=table.table_name) for table in tables]
|
|
return results
|
|
|
|
|
|
def get_columns_for_table(db: Session, table: MetaDataTableResponse)-> List[MetaDataColumnResponse]:
|
|
columns = db.query(MetaDataColumn).filter_by(table_id = table.id).all()
|
|
results: List[MetaDataColumnResponse] = []
|
|
for column in columns:
|
|
result: MetaDataColumnResponse = MetaDataColumnResponse(
|
|
id=str(column.id),
|
|
name=column.column_name,
|
|
label=column.column_label,
|
|
order=column.column_order,
|
|
ref_column=column.ref_column,
|
|
column_type=column.column_type)
|
|
results.append(result)
|
|
return results
|
|
|