diff options
Diffstat (limited to 'crates')
-rw-r--r-- | crates/sellershut/src/entity/user.rs | 7 | ||||
-rw-r--r-- | crates/sellershut/src/main.rs | 12 | ||||
-rw-r--r-- | crates/sellershut/src/server/activities/follow.rs | 2 | ||||
-rw-r--r-- | crates/sellershut/src/server/routes.rs | 2 | ||||
-rw-r--r-- | crates/sellershut/src/server/routes/users/followers.rs | 2 | ||||
-rw-r--r-- | crates/sellershut/src/server/routes/users/get_outbox.rs | 2 | ||||
-rw-r--r-- | crates/sellershut/src/server/routes/users/get_user.rs | 2 | ||||
-rw-r--r-- | crates/sellershut/src/server/routes/users/webfinger.rs | 2 | ||||
-rw-r--r-- | crates/sellershut/src/state.rs | 8 |
9 files changed, 26 insertions, 13 deletions
diff --git a/crates/sellershut/src/entity/user.rs b/crates/sellershut/src/entity/user.rs index e3af58c..6fb12ae 100644 --- a/crates/sellershut/src/entity/user.rs +++ b/crates/sellershut/src/entity/user.rs @@ -14,13 +14,16 @@ use activitypub_federation::{ }; use async_trait::async_trait; use serde::{Deserialize, Serialize}; -use stack_up::{Environment, Services}; +use stack_up::Environment; use time::OffsetDateTime; use tracing::trace; use url::Url; use uuid::Uuid; -use crate::{error::AppError, state::AppHandle}; +use crate::{ + error::AppError, + state::{AppHandle, Services}, +}; #[derive(PartialEq, Clone, Debug)] pub struct User { diff --git a/crates/sellershut/src/main.rs b/crates/sellershut/src/main.rs index b51c9f0..9ff7d45 100644 --- a/crates/sellershut/src/main.rs +++ b/crates/sellershut/src/main.rs @@ -39,16 +39,20 @@ async fn main() -> Result<(), AppError> { let _tracing = Tracing::builder().build(&config.monitoring); - let services = Services::builder() + let mut services = Services::builder() .postgres(&config.database) .await .inspect_err(|e| error!("database: {e}"))? .build(); + let postgres = services + .postgres + .take() + .ok_or_else(|| anyhow::anyhow!("database is not ready"))?; + trace!("running migrations"); - sqlx::migrate!("./migrations") - .run(&services.postgres) - .await?; + sqlx::migrate!("./migrations").run(&postgres).await?; + let services = crate::state::Services { postgres }; let state = AppState::create(services, &config).await?; diff --git a/crates/sellershut/src/server/activities/follow.rs b/crates/sellershut/src/server/activities/follow.rs index bfabbfd..90b3aff 100644 --- a/crates/sellershut/src/server/activities/follow.rs +++ b/crates/sellershut/src/server/activities/follow.rs @@ -127,8 +127,8 @@ mod tests { http::{Request, StatusCode}, }; use sqlx::PgPool; - use stack_up::Services; use tower::ServiceExt; + use crate::state::Services; use crate::{ server::{self, test_config}, diff --git a/crates/sellershut/src/server/routes.rs b/crates/sellershut/src/server/routes.rs index 9e1b9a9..fc34ff0 100644 --- a/crates/sellershut/src/server/routes.rs +++ b/crates/sellershut/src/server/routes.rs @@ -15,7 +15,7 @@ mod tests { http::{Request, StatusCode}, }; use sqlx::PgPool; - use stack_up::Services; + use crate::state::Services; use tower::ServiceExt; use crate::{ diff --git a/crates/sellershut/src/server/routes/users/followers.rs b/crates/sellershut/src/server/routes/users/followers.rs index ae74929..3b6f2ea 100644 --- a/crates/sellershut/src/server/routes/users/followers.rs +++ b/crates/sellershut/src/server/routes/users/followers.rs @@ -62,7 +62,7 @@ mod tests { use serde::{Deserialize, Serialize}; use serde_json::Value; use sqlx::PgPool; - use stack_up::Services; + use crate::state::Services; use tower::ServiceExt; use url::Url; diff --git a/crates/sellershut/src/server/routes/users/get_outbox.rs b/crates/sellershut/src/server/routes/users/get_outbox.rs index 75467af..48d2e04 100644 --- a/crates/sellershut/src/server/routes/users/get_outbox.rs +++ b/crates/sellershut/src/server/routes/users/get_outbox.rs @@ -29,7 +29,7 @@ mod tests { http::{Request, StatusCode}, }; use sqlx::PgPool; - use stack_up::Services; + use crate::state::Services; use tower::ServiceExt; use crate::{ diff --git a/crates/sellershut/src/server/routes/users/get_user.rs b/crates/sellershut/src/server/routes/users/get_user.rs index fc2803e..32cee42 100644 --- a/crates/sellershut/src/server/routes/users/get_user.rs +++ b/crates/sellershut/src/server/routes/users/get_user.rs @@ -52,7 +52,7 @@ mod tests { http::{Request, StatusCode}, }; use sqlx::PgPool; - use stack_up::Services; + use crate::state::Services; use tower::ServiceExt; use crate::{ diff --git a/crates/sellershut/src/server/routes/users/webfinger.rs b/crates/sellershut/src/server/routes/users/webfinger.rs index c395d59..3096a03 100644 --- a/crates/sellershut/src/server/routes/users/webfinger.rs +++ b/crates/sellershut/src/server/routes/users/webfinger.rs @@ -38,7 +38,7 @@ mod tests { http::{Request, StatusCode}, }; use sqlx::PgPool; - use stack_up::Services; + use crate::state::Services; use tower::ServiceExt; use crate::{ diff --git a/crates/sellershut/src/state.rs b/crates/sellershut/src/state.rs index 959d0f3..6c4822d 100644 --- a/crates/sellershut/src/state.rs +++ b/crates/sellershut/src/state.rs @@ -2,7 +2,8 @@ use std::{ops::Deref, sync::Arc}; use activitypub_federation::config::FederationConfig; use sellershut_core::auth::auth_client::AuthClient; -use stack_up::{Configuration, Environment, Services}; +use sqlx::PgPool; +use stack_up::{Configuration, Environment}; use tonic::transport::Endpoint; use tracing::error; @@ -24,6 +25,11 @@ impl Deref for AppHandle { } } +#[derive(Clone)] +pub struct Services { + pub postgres: PgPool, +} + pub struct AppState { pub services: Services, pub environment: Environment, |