summaryrefslogtreecommitdiff
path: root/server/src/db.rs
diff options
context:
space:
mode:
authorSanto Cariotti <santo@dcariotti.me>2022-08-22 16:06:28 +0200
committerSanto Cariotti <santo@dcariotti.me>2022-08-22 16:06:28 +0200
commit14968097b28919f7e1f71ec5e49b30191826fa33 (patch)
tree1eda1c77577618491a7330ab2c67bca6f6c5139e /server/src/db.rs
parent7c40a2f9ead877620ab74b5a5c35a70db1c94362 (diff)
Sqlx connection
Diffstat (limited to 'server/src/db.rs')
-rw-r--r--server/src/db.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/server/src/db.rs b/server/src/db.rs
new file mode 100644
index 0000000..8cc4d1f
--- /dev/null
+++ b/server/src/db.rs
@@ -0,0 +1,20 @@
+use crate::errors::AppError;
+
+use sqlx::postgres::PgPool;
+
+static mut CONNECTION: Option<PgPool> = None;
+
+pub async fn setup() -> Result<(), AppError> {
+ let database_url =
+ std::env::var("DATABASE_URL").expect("Define `DATABASE_URL` environment variable.");
+
+ unsafe {
+ CONNECTION = Some(PgPool::connect(&database_url).await?);
+ }
+
+ Ok(())
+}
+
+pub unsafe fn get_client() -> Option<&'static PgPool> {
+ CONNECTION.as_ref()
+}