summaryrefslogtreecommitdiffstats
path: root/crates
diff options
context:
space:
mode:
Diffstat (limited to 'crates')
-rw-r--r--crates/sellershut/src/entity/user.rs7
-rw-r--r--crates/sellershut/src/main.rs12
-rw-r--r--crates/sellershut/src/server/activities/follow.rs2
-rw-r--r--crates/sellershut/src/server/routes.rs2
-rw-r--r--crates/sellershut/src/server/routes/users/followers.rs2
-rw-r--r--crates/sellershut/src/server/routes/users/get_outbox.rs2
-rw-r--r--crates/sellershut/src/server/routes/users/get_user.rs2
-rw-r--r--crates/sellershut/src/server/routes/users/webfinger.rs2
-rw-r--r--crates/sellershut/src/state.rs8
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,