Skip to content

Commit 377ca9f

Browse files
Add Emails to background_jobs Environment
1 parent 2ea5d41 commit 377ca9f

File tree

3 files changed

+16
-4
lines changed

3 files changed

+16
-4
lines changed

src/background_jobs.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ use swirl::PerformError;
88
use crate::db::{DieselPool, DieselPooledConn};
99
use crate::git::Repository;
1010
use crate::uploaders::Uploader;
11+
use crate::email::Emails;
1112

1213
impl<'a> swirl::db::BorrowedConnection<'a> for DieselPool {
1314
type Connection = DieselPooledConn<'a>;
@@ -26,6 +27,7 @@ pub struct Environment {
2627
index: Arc<Mutex<Repository>>,
2728
pub uploader: Uploader,
2829
http_client: AssertUnwindSafe<Client>,
30+
pub emails: Arc<Emails>,
2931
}
3032

3133
impl Clone for Environment {
@@ -34,24 +36,27 @@ impl Clone for Environment {
3436
index: self.index.clone(),
3537
uploader: self.uploader.clone(),
3638
http_client: AssertUnwindSafe(self.http_client.0.clone()),
39+
emails: self.emails.clone(),
3740
}
3841
}
3942
}
4043

4144
impl Environment {
42-
pub fn new(index: Repository, uploader: Uploader, http_client: Client) -> Self {
43-
Self::new_shared(Arc::new(Mutex::new(index)), uploader, http_client)
45+
pub fn new(index: Repository, uploader: Uploader, http_client: Client, emails: Emails) -> Self {
46+
Self::new_shared(Arc::new(Mutex::new(index)), uploader, http_client, Arc::new(emails))
4447
}
4548

4649
pub fn new_shared(
4750
index: Arc<Mutex<Repository>>,
4851
uploader: Uploader,
4952
http_client: Client,
53+
emails: Arc<Emails>,
5054
) -> Self {
5155
Self {
5256
index,
5357
uploader,
5458
http_client: AssertUnwindSafe(http_client),
59+
emails,
5560
}
5661
}
5762

src/bin/background-worker.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
1313
#![warn(clippy::all, rust_2018_idioms)]
1414

15+
use cargo_registry::email::Emails;
1516
use cargo_registry::git::{Repository, RepositoryConfig};
1617
use cargo_registry::{background_jobs::*, db};
1718
use diesel::r2d2;
@@ -40,8 +41,13 @@ fn main() {
4041
println!("Index cloned");
4142

4243
let build_runner = || {
43-
let environment =
44-
Environment::new_shared(repository.clone(), config.uploader.clone(), Client::new());
44+
let emails = Emails::from_environment();
45+
let environment = Environment::new_shared(
46+
repository.clone(),
47+
config.uploader.clone(),
48+
Client::new(),
49+
Arc::new(emails),
50+
);
4551
let db_config = r2d2::Pool::builder().min_idle(Some(0));
4652
swirl::Runner::builder(environment)
4753
.connection_pool_builder(&db_url, db_config)

src/tests/util/test_app.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,7 @@ impl TestAppBuilder {
194194
index,
195195
app.config.uploader.clone(),
196196
app.http_client().clone(),
197+
Emails::new_in_memory(),
197198
);
198199

199200
Some(

0 commit comments

Comments
 (0)