diff --git a/thesandwich-backend/src/main.rs b/thesandwich-backend/src/main.rs index 7bdc886..d99acee 100644 --- a/thesandwich-backend/src/main.rs +++ b/thesandwich-backend/src/main.rs @@ -10,7 +10,8 @@ use tracing_subscriber::{EnvFilter, layer::SubscriberExt, util::SubscriberInitEx mod error; -const WEBHOOK: &'static str = dotenv!("WEBHOOK"); +const SPECULATION_WEBHOOK: &'static str = dotenv!("SPECULATION_WEBHOOK"); +const IDEA_WEBHOOK: &'static str = dotenv!("IDEA_WEBHOOK"); const LISTEN_ADDR: &'static str = dotenv!("LISTEN_ADDR"); #[tokio::main] @@ -27,7 +28,9 @@ async fn main() -> eyre::Result<()> { .with(tracing_subscriber::fmt::layer()) .init(); - let app = Router::new().route("/api/speculate", post(speculate)); + let app = Router::new() + .route("/api/speculate", post(speculate)) + .route("/api/page-idea", post(page_idea)); let listener = tokio::net::TcpListener::bind(LISTEN_ADDR) .await @@ -47,7 +50,7 @@ struct Speculation { async fn speculate(Form(speculation): Form) -> Result { let discord_http = Http::new(""); - let webhook = Webhook::from_url(&discord_http, WEBHOOK) + let webhook = Webhook::from_url(&discord_http, SPECULATION_WEBHOOK) .await .wrap_err("Failed to initialize webhook") .with_status_code(StatusCode::INTERNAL_SERVER_ERROR)?; @@ -65,3 +68,32 @@ async fn speculate(Form(speculation): Form) -> Result) -> Result { + let discord_http = Http::new(""); + + let webhook = Webhook::from_url(&discord_http, IDEA_WEBHOOK) + .await + .wrap_err("Failed to initialize webhook") + .with_status_code(StatusCode::INTERNAL_SERVER_ERROR)?; + + let builder = ExecuteWebhook::new() + .content(page_idea.page_idea) + .username("Anonymous ideator"); + webhook + .execute(&discord_http, false, builder) + .await + .wrap_err("Could not execute webhook") + .with_status_code(StatusCode::INTERNAL_SERVER_ERROR)?; + + Ok(maud::html! { + p { "Page idea launched at high speed directly into our DMs" } + }) +}