diff options
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/main.rs b/src/main.rs index c1209bf..4daba48 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,3 +1,5 @@ +use std::{env, fs}; + mod database; mod routes; mod auth; @@ -7,6 +9,7 @@ use axum::{ Router, }; +use jsonwebtoken::EncodingKey; use routes::problem::{get_problems, create_problem}; use routes::user::create_user; use tower_http::services::ServeDir; @@ -15,16 +18,28 @@ use crate::database::Database; #[derive(Clone)] struct AppState { + api_key: EncodingKey, database: Database, } #[tokio::main] async fn main() { + let Ok(api_key_string) = fs::read_to_string("api-key.pem") else { + eprintln!("failed to read api-key.pem"); + return; + }; + + let Ok(api_key) = EncodingKey::from_ec_pem(api_key_string.as_bytes()) else { + eprintln!("failed to decode key from api-key.pem"); + return; + }; + let database = Database::new_in_memory().unwrap(); database.initialize().unwrap(); let state = AppState { + api_key: api_key.to_owned(), database: database, }; |
