From 30e500ec4491a308f43ba454f842b21c36346ebf Mon Sep 17 00:00:00 2001 From: GW_MC <72297530+GWMCwing@users.noreply.github.com> Date: Sun, 7 Dec 2025 19:09:37 +0800 Subject: [PATCH] Added macro for handling both transaction and pooled connection --- apps/api/src/helpers.rs | 1 + apps/api/src/helpers/database.rs | 13 +++++++++++++ apps/api/src/main.rs | 1 + 3 files changed, 15 insertions(+) create mode 100644 apps/api/src/helpers.rs create mode 100644 apps/api/src/helpers/database.rs diff --git a/apps/api/src/helpers.rs b/apps/api/src/helpers.rs new file mode 100644 index 0000000..8fd0a6b --- /dev/null +++ b/apps/api/src/helpers.rs @@ -0,0 +1 @@ +pub mod database; diff --git a/apps/api/src/helpers/database.rs b/apps/api/src/helpers/database.rs new file mode 100644 index 0000000..9cdcde3 --- /dev/null +++ b/apps/api/src/helpers/database.rs @@ -0,0 +1,13 @@ +#[macro_export] +macro_rules! with_conn { + // Usage: with_conn!(connection, tx_option, ident, |conn|-> { ... }) + ($conn:expr, $tx:expr, $ident:ident, $body:block) => {{ + if let Some(t) = $tx { + let $ident = t; + $body + } else { + let $ident = $conn; + $body + } + }}; +} diff --git a/apps/api/src/main.rs b/apps/api/src/main.rs index ba0c82f..3eef8e1 100644 --- a/apps/api/src/main.rs +++ b/apps/api/src/main.rs @@ -1,6 +1,7 @@ mod cmd; mod configs; mod errors; +mod helpers; mod log; mod middlewares; mod routes;