//! # HTTP Module //! //! Web server implementation using the Axum framework with HTMX support for dynamic user interactions. //! //! This module contains all the HTTP request handlers, middleware, and utilities for the smokesignal //! web application. It provides a modern, responsive interface for event management and RSVP functionality. //! //! ## Architecture //! //! The HTTP module is organized around several key concepts: //! //! ### Request Handlers //! - **Event Management**: [`handle_create_event`], [`handle_edit_event`], [`handle_view_event`] //! - **RSVP System**: [`handle_create_rsvp`], [`handle_view_rsvp`] //! - **Administration**: [`handle_admin_index`], [`handle_admin_events`], [`handle_admin_event`] and other admin modules //! - **Authentication**: [`handle_oauth_login`], [`handle_oauth_callback`], [`handle_oauth_metadata`] OAuth flow handlers //! - **User Interface**: [`handle_index`], [`handle_profile`], [`handle_settings`] //! //! ### Middleware //! - **[`middleware_auth`]** - Authentication and session management //! - **[`middleware_i18n`]** - Internationalization and locale detection //! - **[`middleware_filter`]** - Request filtering and validation //! //! ### Support Utilities //! - **[`context`]** - Request context management and template data preparation //! - **[`templates`]** - Template rendering and response generation //! - **[`pagination`]** - List pagination utilities //! - **[`errors`]** - HTTP error handling and user-friendly error pages //! //! ## Features //! //! ### HTMX Integration //! The application heavily uses HTMX for dynamic interactions: //! - Partial page updates without full page reloads //! - Real-time RSVP updates //! - Progressive enhancement for accessibility //! - Automatic detection of HTMX requests for appropriate responses //! //! ### Internationalization //! Full i18n support with automatic locale detection: //! - Language preference detection from headers and user settings //! - Gender-aware translations for personalized content //! - Graceful fallback to English when translations are missing //! //! ### Template System //! Unified template rendering with automatic context enrichment: //! - Consistent layout and styling with Bulma CSS //! - Automatic injection of common template variables //! - Error templates with proper context and user guidance //! - Support for both full page and partial rendering //! //! ### Security //! - CSRF protection for state-changing operations //! - Secure session management with Redis/Valkey //! - Input validation and sanitization //! - Rate limiting and abuse prevention //! //! ## Example Usage //! //! ```rust,no_run //! use smokesignal::http::server; //! use smokesignal::config::Config; //! //! async fn start_server() -> anyhow::Result<()> { //! let config = Config::from_env().await?; //! server::run(config).await //! } //! ``` pub mod cache_countries; pub mod context; pub mod errors; pub mod event_form; pub mod event_view; pub mod handle_admin_denylist; pub mod handle_admin_event; pub mod handle_admin_events; pub mod handle_admin_handles; pub mod handle_admin_import_event; pub mod handle_admin_import_rsvp; pub mod handle_admin_index; pub mod handle_admin_rsvp; pub mod handle_admin_rsvps; pub mod handle_create_event; pub mod handle_create_rsvp; pub mod handle_edit_event; pub mod handle_filter_events; pub mod handle_import; pub mod handle_index; pub mod handle_migrate_event; pub mod handle_migrate_rsvp; pub mod handle_oauth_callback; pub mod handle_oauth_jwks; pub mod handle_oauth_login; pub mod handle_oauth_logout; pub mod handle_oauth_metadata; pub mod handle_policy; pub mod handle_profile; pub mod handle_set_language; pub mod handle_settings; pub mod handle_view_event; pub mod handle_ical_event; // New iCal handler pub mod handle_view_feed; pub mod handle_view_rsvp; pub mod location_edit_status; pub mod macros; pub mod middleware_auth; pub mod middleware_filter; pub mod middleware_i18n; pub mod middleware_timezone; pub mod pagination; pub mod rsvp_form; pub mod server; pub mod tab_selector; pub mod template_renderer; pub mod templates; pub mod timezones; pub mod utils;