summaryrefslogtreecommitdiffstats
path: root/src/state.rs
diff options
context:
space:
mode:
authorToby Vincent <tobyv@tobyvin.dev>2024-03-21 21:39:15 -0500
committerToby Vincent <tobyv@tobyvin.dev>2024-03-21 21:39:15 -0500
commitfd1447999d9665866d65002b2c2317b8b150225f (patch)
treedce0c5282a60fc27f65a066200fcd8aa86b4370e /src/state.rs
parentf977dce01be9de61a64b94aab883fb43949234b3 (diff)
feat: impl user api endpoint
Diffstat (limited to 'src/state.rs')
-rw-r--r--src/state.rs19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/state.rs b/src/state.rs
index 78a6654..efe2192 100644
--- a/src/state.rs
+++ b/src/state.rs
@@ -1 +1,18 @@
-pub struct AppState;
+use sqlx::{postgres::PgPoolOptions, Pool, Postgres};
+
+use crate::Error;
+
+pub struct AppState {
+ pub db_pool: Pool<Postgres>,
+}
+
+impl AppState {
+ pub async fn new<S: AsRef<str>>(db_url: S) -> Result<Self, Error> {
+ let db_pool = PgPoolOptions::new()
+ .max_connections(10)
+ .connect(db_url.as_ref())
+ .await?;
+
+ Ok(Self { db_pool })
+ }
+}