Migrate secrets all the env file

This commit is contained in:
Joshua Coles 2024-07-28 09:59:40 +01:00
parent b35c79761f
commit b62d6db866

View File

@ -3,7 +3,6 @@ use sqlx::{Connection, PgPool};
use toggl::TogglApi;
use worker::Worker;
mod sensitive;
mod server;
mod toggl;
mod worker;
@ -43,18 +42,40 @@ struct TableSummary {
tag_ids: Vec<u64>,
}
struct Environment {
database_url: String,
api_token: String,
default_workspace_id: u64,
}
impl Environment {
fn from_env() -> Self {
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let api_token = std::env::var("API_TOKEN").expect("API_TOKEN must be set");
let default_workspace_id = std::env::var("DEFAULT_WORKSPACE_ID")
.expect("DEFAULT_WORKSPACE_ID must be set")
.parse()
.expect("DEFAULT_WORKSPACE_ID must be a number");
Self {
database_url,
api_token,
default_workspace_id,
}
}
}
#[tokio::main]
async fn main() {
dotenv::dotenv().expect("Failed to load .env file");
// Init tracing
tracing_subscriber::fmt::init();
let env_config = Environment::from_env();
let toggl_api = TogglApi::new(sensitive::API_TOKEN, sensitive::WORKSPACE_ID);
let database_url = std::env::var("DATABASE_URL").expect("DATABASE_URL must be set");
let mut db = PgPool::connect(&database_url).await.unwrap();
let toggl_api = TogglApi::new(&env_config.api_token, env_config.default_workspace_id);
let mut db = PgPool::connect(&env_config.database_url).await.unwrap();
sqlx::migrate!("./migrations")
.run(&db)