diff --git a/src/macros.rs b/src/macros.rs new file mode 100644 index 0000000..34a43fa --- /dev/null +++ b/src/macros.rs @@ -0,0 +1,20 @@ +/// Macro to use error template to return errors +/// must pass it hb then Result +#[macro_export] +macro_rules! render_error { + ($hb: expr, $e:expr) => { + match $e { + Ok(r) => r, + Err(e) => { + let data = json!({ + "error": e.to_string(), + }); + let body = match $hb.render("error", &data) { + Ok(r) => r, + Err(ee) => format!("error: {e}\nerror2: {ee}\n"), + }; + return Ok(actix_web::HttpResponse::InternalServerError().body(body)); + } + } + }; +} diff --git a/src/main.rs b/src/main.rs index 74e525f..4993e29 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,4 +1,5 @@ mod client; +mod macros; mod options; mod routes; mod wot_log;