Skip to content

Commit f669528

Browse files
committed
Extract Job::enqueue_sync_to_index() fn
1 parent 1c0a95b commit f669528

File tree

6 files changed

+30
-16
lines changed

6 files changed

+30
-16
lines changed

src/admin/delete_crate.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -56,10 +56,7 @@ fn delete(opts: Opts, conn: &mut PgConnection) {
5656
}
5757

5858
if dotenv::var("FEATURE_INDEX_SYNC").is_ok() {
59-
Job::sync_to_git_index(&krate.name).enqueue(conn).unwrap();
60-
Job::sync_to_sparse_index(&krate.name)
61-
.enqueue(conn)
62-
.unwrap();
59+
Job::enqueue_sync_to_index(&krate.name, conn).unwrap();
6360
} else {
6461
uploader.delete_index(&client, &krate.name).unwrap();
6562
}

src/admin/delete_version.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -60,9 +60,6 @@ fn delete(opts: Opts, conn: &mut PgConnection) {
6060
}
6161

6262
if dotenv::var("FEATURE_INDEX_SYNC").is_ok() {
63-
Job::sync_to_git_index(&krate.name).enqueue(conn).unwrap();
64-
Job::sync_to_sparse_index(&krate.name)
65-
.enqueue(conn)
66-
.unwrap();
63+
Job::enqueue_sync_to_index(&krate.name, conn).unwrap();
6764
}
6865
}

src/admin/yank_version.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,7 @@ fn yank(opts: Opts, conn: &mut PgConnection) {
6666
.unwrap();
6767

6868
if dotenv::var("FEATURE_INDEX_SYNC").is_ok() {
69-
Job::sync_to_git_index(&krate.name).enqueue(conn).unwrap();
70-
Job::sync_to_sparse_index(&krate.name)
71-
.enqueue(conn)
72-
.unwrap();
69+
Job::enqueue_sync_to_index(&krate.name, conn).unwrap();
7370
} else {
7471
crate::worker::sync_yanked(krate.name, v.num)
7572
.enqueue(conn)

src/background_jobs.rs

+25
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,31 @@ impl Job {
5353
const SYNC_TO_SPARSE_INDEX: &str = "sync_to_sparse_index";
5454
const UPDATE_DOWNLOADS: &str = "update_downloads";
5555

56+
pub fn enqueue_sync_to_index<T: ToString>(
57+
krate: T,
58+
conn: &mut PgConnection,
59+
) -> Result<(), EnqueueError> {
60+
use crate::schema::background_jobs::dsl::*;
61+
62+
let to_git = Self::sync_to_git_index(krate.to_string());
63+
let to_git = (
64+
job_type.eq(to_git.as_type_str()),
65+
data.eq(to_git.to_value()?),
66+
);
67+
68+
let to_sparse = Self::sync_to_sparse_index(krate.to_string());
69+
let to_sparse = (
70+
job_type.eq(to_sparse.as_type_str()),
71+
data.eq(to_sparse.to_value()?),
72+
);
73+
74+
diesel::insert_into(background_jobs)
75+
.values(vec![to_git, to_sparse])
76+
.execute(conn)?;
77+
78+
Ok(())
79+
}
80+
5681
pub fn sync_to_git_index<T: ToString>(krate: T) -> Job {
5782
Job::SyncToGitIndex(SyncToIndexJob {
5883
krate: krate.to_string(),

src/controllers/krate/publish.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -274,8 +274,7 @@ pub async fn publish(app: AppState, req: BytesRequest) -> AppResult<Json<GoodCra
274274
};
275275

276276
if app.config.feature_index_sync {
277-
Job::sync_to_git_index(&git_crate.name).enqueue(conn)?;
278-
Job::sync_to_sparse_index(&git_crate.name).enqueue(conn)?;
277+
Job::enqueue_sync_to_index(&krate.name, conn)?;
279278
} else {
280279
worker::add_crate(git_crate).enqueue(conn)?;
281280
}

src/controllers/version/yank.rs

+1-2
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,7 @@ fn modify_yank(
8686
insert_version_owner_action(conn, version.id, user.id, api_token_id, action)?;
8787

8888
if state.config.feature_index_sync {
89-
Job::sync_to_git_index(&krate.name).enqueue(conn)?;
90-
Job::sync_to_sparse_index(&krate.name).enqueue(conn)?;
89+
Job::enqueue_sync_to_index(&krate.name, conn)?;
9190
} else {
9291
worker::sync_yanked(krate.name, version.num).enqueue(conn)?;
9392
}

0 commit comments

Comments
 (0)