use lambda_http::{run, Error};
use tracing::info;
#[tokio::main]
async fn main() -> Result<(), Error> {
let filter = std::env::var("RUST_LOG").unwrap_or_else(|_| {
let level = std::env::var("PGRST_LOG_LEVEL")
.ok()
.and_then(|v| postrust_core::LogLevel::parse_config(&v))
.unwrap_or_else(|| postrust_core::AppConfig::default().log_level);
format!("postrust={}", level.to_tracing())
});
tracing_subscriber::fmt()
.with_env_filter(tracing_subscriber::EnvFilter::new(filter))
.with_target(false)
.without_time()
.init();
let mut config = postrust_core::AppConfig::try_from_env()?;
if ["PGRST_DB_POOL", "PGRST_DB_POOL_SIZE"]
.iter()
.all(|var| std::env::var_os(var).is_none())
{
config.db_pool_size = 2;
}
info!("Starting Postrust Lambda handler");
let app = postrust_server::build(config, postrust_server::Host::LAMBDA).await?;
run(app.router).await
}