diff --git a/bin/pudoxd/src/main.rs b/bin/pudoxd/src/main.rs index 841038d..0b33fb4 100644 --- a/bin/pudoxd/src/main.rs +++ b/bin/pudoxd/src/main.rs @@ -4,34 +4,42 @@ use std::net::SocketAddr; mod linear; use crate::linear::{Linear, WebhookPayload}; +#[derive(Clone)] +struct App { + linear: Linear, +} + #[tokio::main] async fn main() -> Result<(), Box> { tracing_subscriber::fmt::init(); tracing::info!("Starting pudoxd..."); - let linear = Linear::new(); + let app = App { + linear: Linear::new(), + }; - let app = Router::new() + let router = Router::new() .route("/webhook", post(webhook_handler)) - .with_state(linear); + .with_state(app); let addr = SocketAddr::from(([0, 0, 0, 0], 7790)); tracing::info!("Listening on {}", addr); let listener = tokio::net::TcpListener::bind(addr).await?; - axum::serve(listener, app).await?; + axum::serve(listener, router).await?; Ok(()) } async fn webhook_handler( - State(linear): State, + State(app): State, axum::Json(payload): axum::Json, ) -> &'static str { tracing::info!("Webhook received"); if payload.event_type == "AgentSessionEvent" && payload.action == "created" { - let res = linear + let res = app + .linear .send(serde_json::json!({ "query": r#" mutation AgentActivityCreate($input: AgentActivityCreateInput!) {