1use sqlparser::dialect::GenericDialect;
2use sqlparser::parser::Parser;
3
4mod models;
5mod utils;
6
7use crate::utils::build_query_summary;
8
9pub fn parse_sql(sql: &str) -> Result<String, String> {
10 let dialect = GenericDialect {};
11
12 let statements = Parser::parse_sql(&dialect, sql)
13 .map_err(|e| e.to_string())?;
14
15 let statement = statements
16 .first()
17 .ok_or("No SQL statement found")?;
18
19 let summary = build_query_summary(statement);
20
21 serde_json::to_string_pretty(&summary)
22 .map_err(|e| e.to_string())
23}