31 lines
892 B
Rust
31 lines
892 B
Rust
#![cfg(feature = "ssr")]
|
|||
|
|
|
||
|
|
pub mod oidc;
|
||
|
|
|
||
|
|
use axum::extract::FromRef;
|
||
|
|
use leptos::prelude::LeptosOptions;
|
||
|
|
use std::collections::HashMap;
|
||
|
|
use std::sync::Arc;
|
||
|
|
|
||
|
|
use crate::content::Question;
|
||
|
|
|
||
|
|
#[derive(Clone)]
|
||
|
|
pub struct AppState {
|
||
|
|
pub leptos_options: LeptosOptions,
|
||
|
|
pub nats: async_nats::Client,
|
||
|
|
/// JetStream context - source of every NATS KV bucket this app
|
||
|
|
/// reads/writes (applicants, and whatever a `ResourceSpec` names).
|
||
|
|
pub jetstream: async_nats::jetstream::Context,
|
||
|
|
pub questions: Arc<HashMap<String, Question>>,
|
||
|
|
pub oidc: Arc<oidc::Oidc>,
|
||
|
|
/// `None` when `GARAGE_*` env vars aren't set - uploads are the one
|
||
|
|
/// optional feature, everything else works without Garage.
|
||
|
|
pub garage: Option<crate::upload::Garage>,
|
||
|
|
}
|
||
|
|
|
||
|
|
impl FromRef<AppState> for LeptosOptions {
|
||
|
|
fn from_ref(state: &AppState) -> Self {
|
||
|
|
state.leptos_options.clone()
|
||
|
|
}
|
||
|
|
}
|