feat: allow to infer database from url connection

This commit is contained in:
Alexander Navarro 2025-01-22 16:46:32 -03:00
parent a4fe3808de
commit 48a582eb7e
5 changed files with 29 additions and 3 deletions

View file

@ -1,9 +1,28 @@
use crate::error::Result;
use clap::ValueEnum;
use url::Url;
use crate::error::{Error, Result};
mod postgres;
#[derive(ValueEnum, Clone)]
pub enum Database {
Postgres,
}
pub async fn handle_query(url: String, query: &String) -> Result<()> {
let connector = postgres::PgConnector::new(url).await?;
let parse = Url::parse(&url)?;
let scheme = parse.scheme();
let connector = match scheme {
"postgresql" => postgres::PgConnector::new(url).await?,
&_ => {
return Err(Error::Generic(format!(
"Database `{}` is not supported",
scheme
)))
}
};
let rows = connector.query(query).await?;