summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGalen Guyer <galen@galenguyer.com>2022-06-02 22:30:03 -0400
committerGalen Guyer <galen@galenguyer.com>2022-06-02 22:30:03 -0400
commit0a3b7624f310201e0aa5ac235150acc4933d75d0 (patch)
treea6de7d62f7cbe80837571f3d2285d907ed751c4c
parentea58034b765696389d343e5d009bb9c46efb909b (diff)
add features statics
-rw-r--r--src/features.rs9
-rw-r--r--src/main.rs1
-rw-r--r--src/routes/v1/features.rs14
-rw-r--r--src/routes/v1/mod.rs2
4 files changed, 20 insertions, 6 deletions
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::<bool>().unwrap_or(false),
- "signup": option_env!("FDNS_SIGNUP_ENABLED").unwrap_or("false").parse::<bool>().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;