this repo has no description
1use sqlx::SqlitePool;
2
3#[derive(Clone)]
4pub struct AppState {
5 pub db: SqlitePool,
6 pub jwt_secret: String,
7 pub vapid_private_key_pem: String,
8 pub vapid_public_key: String,
9}
10
11impl AppState {
12 pub fn new(db: SqlitePool, jwt_secret: String, vapid_pem: String, vapid_pub: String) -> Self {
13 Self {
14 db,
15 jwt_secret,
16 vapid_private_key_pem: vapid_pem,
17 vapid_public_key: vapid_pub,
18 }
19 }
20}
21
22pub fn jwt_secret() -> String {
23 std::env::var("JWT_SECRET").unwrap_or_else(|_| "dev-secret-change-me".to_string())
24}
25
26pub fn database_url() -> String {
27 std::env::var("DATABASE_URL").unwrap_or_else(|_| "sqlite:ayos.db".to_string())
28}
29
30pub fn static_dir() -> Option<String> {
31 std::env::var("STATIC_DIR").ok()
32}
33
34pub fn port() -> u16 {
35 std::env::var("PORT")
36 .ok()
37 .and_then(|p| p.parse().ok())
38 .unwrap_or(3001)
39}