diff options
author | Toby Vincent <tobyv@tobyvin.dev> | 2024-03-21 21:39:15 -0500 |
---|---|---|
committer | Toby Vincent <tobyv@tobyvin.dev> | 2024-03-21 21:39:15 -0500 |
commit | fd1447999d9665866d65002b2c2317b8b150225f (patch) | |
tree | dce0c5282a60fc27f65a066200fcd8aa86b4370e /src/state.rs | |
parent | f977dce01be9de61a64b94aab883fb43949234b3 (diff) |
feat: impl user api endpoint
Diffstat (limited to 'src/state.rs')
-rw-r--r-- | src/state.rs | 19 |
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 }) + } +} |