use axum::{extract::State, http::StatusCode, response::IntoResponse, Form}; use chrono::Utc; use serde::Deserialize; use sqlx::PgPool; use uuid::Uuid; #[derive(Deserialize)] pub struct FormData { name: String, email: String, } pub async fn subscribe( State(conn): State, Form(form): Form, ) -> impl IntoResponse { match sqlx::query!( r#" INSERT INTO subscriptions(id, email, name, subscribed_at) VALUES ($1, $2, $3, $4) "#, Uuid::new_v4(), form.email, form.name, Utc::now() ) .execute(&conn) .await { Ok(_) => StatusCode::OK, Err(e) => { println!("Failed to execute query: {:?}", e); StatusCode::INTERNAL_SERVER_ERROR } } }