use actix_web::HttpResponse;
use super::identifier_validation::validate_identifier;
use super::query_contracts::ColumnQuery;
use super::request_param_contracts::NormalizedColumnQuery;
pub(super) fn normalize_column_query(
query: &ColumnQuery,
) -> Result<NormalizedColumnQuery, HttpResponse> {
let table_name = validate_identifier(&query.table_name, "table_name")?;
let table_schema = optional_identifier(query.table_schema.as_deref(), "table_schema")?;
Ok(NormalizedColumnQuery {
table_name,
table_schema,
})
}
fn optional_identifier(
value: Option<&str>,
parameter_name: &str,
) -> Result<Option<String>, HttpResponse> {
match value {
Some(raw_value) => validate_identifier(raw_value, parameter_name).map(Some),
None => Ok(None),
}
}