use std::collections::HashMap; use rocket::{catch, serde::json::json}; use rocket_dyn_templates::Template; use crate::web::JsonValue; #[catch(403)] pub(crate) async fn forbidden() -> Template { let map: HashMap = HashMap::new(); Template::render("errors/403", &map) } #[catch(500)] pub(crate) async fn internal_server_error() -> Template { let map: HashMap = HashMap::new(); Template::render("errors/500", &map) } #[catch(401)] pub(crate) async fn not_authorized() -> Template { let map: HashMap = HashMap::new(); Template::render("errors/401", &map) } #[catch(404)] pub(crate) async fn not_found() -> Template { let map: HashMap = HashMap::new(); Template::render("errors/404", &map) } #[catch(451)] pub(crate) async fn legal_reasons() -> Template { let map: HashMap = HashMap::new(); Template::render("errors/451", &map) } #[catch(413)] pub(crate) async fn payload_too_large() -> JsonValue { json!({"error": "Data too large.", "errors": ["Data too large."]}) } #[catch(422)] pub(crate) async fn unprocessable_entity() -> JsonValue { json!({"error": "Invalid request.", "errors": ["Invalid request."]}) }