#![allow(dead_code)]
use anyhow::{anyhow, Result};
#[derive(Debug, Clone)]
pub struct Credentials {
pub database_url: String,
pub user_id: String,
}
impl Credentials {
pub fn from_env() -> Option<Self> {
let database_url = std::env::var("ASURADA_DATABASE_URL").ok()?;
let user_id = std::env::var("ASURADA_USER_ID").ok()?;
if database_url.is_empty() || user_id.is_empty() {
return None;
}
Some(Self {
database_url,
user_id,
})
}
pub fn require_env() -> Result<Self> {
Self::from_env().ok_or_else(|| {
anyhow!(
"ASURADA_DATABASE_URL 와 ASURADA_USER_ID 환경 변수가 필요합니다.\n\
예:\n\
\texport ASURADA_DATABASE_URL='postgresql://postgres:postgres@127.0.0.1:54322/postgres'\n\
\texport ASURADA_USER_ID='alice'"
)
})
}
}