From 0a3b7624f310201e0aa5ac235150acc4933d75d0 Mon Sep 17 00:00:00 2001 From: Galen Guyer Date: Thu, 2 Jun 2022 22:30:03 -0400 Subject: add features statics --- src/features.rs | 9 +++++++++ src/main.rs | 1 + src/routes/v1/features.rs | 14 +++++++++----- src/routes/v1/mod.rs | 2 +- 4 files changed, 20 insertions(+), 6 deletions(-) create mode 100644 src/features.rs diff --git a/src/features.rs b/src/features.rs new file mode 100644 index 0000000..9adad1b --- /dev/null +++ b/src/features.rs @@ -0,0 +1,9 @@ +use lazy_static::lazy_static; +use std::env; + +lazy_static! { + pub static ref SIGNUPS_ENABLED: bool = + env::var("SIGNUPS_ENABLED").unwrap_or_else(|_| String::from("false")) == "true"; + pub static ref TOTP_ENABLED: bool = + env::var("TOTP_ENABLED").unwrap_or_else(|_| String::from("false")) == "true"; +} diff --git a/src/main.rs b/src/main.rs index 8c4a9ea..cde4fec 100644 --- a/src/main.rs +++ b/src/main.rs @@ -14,6 +14,7 @@ use tower_http::trace::TraceLayer; mod db; mod extractors; +mod features; mod routes; #[tokio::main] diff --git a/src/routes/v1/features.rs b/src/routes/v1/features.rs index b9d474d..6d62c1b 100644 --- a/src/routes/v1/features.rs +++ b/src/routes/v1/features.rs @@ -1,10 +1,14 @@ -use axum::{response::IntoResponse, http::StatusCode}; use crate::extractors::Json; +use crate::features; +use axum::{http::StatusCode, response::IntoResponse}; use serde_json::json; pub async fn get_features() -> impl IntoResponse { - (StatusCode::OK, Json(json!({ - "totp": option_env!("FDNS_TOTP_ENABLED").unwrap_or("false").parse::().unwrap_or(false), - "signup": option_env!("FDNS_SIGNUP_ENABLED").unwrap_or("false").parse::().unwrap_or(false), - }))) + ( + StatusCode::OK, + Json(json!({ + "signup": *features::SIGNUPS_ENABLED, + "totp": *features::TOTP_ENABLED, + })), + ) } diff --git a/src/routes/v1/mod.rs b/src/routes/v1/mod.rs index 973ac03..f7ac287 100644 --- a/src/routes/v1/mod.rs +++ b/src/routes/v1/mod.rs @@ -1,6 +1,6 @@ +pub mod features; pub mod records; pub mod users; pub mod zones; -pub mod features; mod requests; -- cgit v1.2.3