mod catalog_filters;
mod schema_filters;
use sqlx::postgres::PgPool;
use super::service_contracts::SchemaRelationRecord;
use super::service_row_mapper::map_relation_rows;
pub async fn fetch_relations(
pool: &PgPool,
schema_filter: Option<&str>,
exclude_system_schemas: bool,
) -> Result<Vec<SchemaRelationRecord>, sqlx::Error> {
let rows = match schema_filter {
Some(schema) => {
schema_filters::fetch_relations_for_schema(pool, schema, exclude_system_schemas).await?
}
None => catalog_filters::fetch_relations_for_catalog(pool, exclude_system_schemas).await?,
};
Ok(map_relation_rows(rows))
}