Skip to content

Commit ac7e9d5

Browse files
author
Marco Napetti
committed
rebase, resolve conflicts
2 parents 647ab83 + fee3a4b commit ac7e9d5

File tree

3 files changed

+13
-59
lines changed

3 files changed

+13
-59
lines changed

src/controllers/krate/delete.rs

-48
This file was deleted.

src/controllers/version/delete.rs

+9-10
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
//! Functionality related to deleting a crate.
22
3-
use std::sync::Arc;
4-
53
use chrono::{Duration, Utc};
64
use diesel::dsl::count_star;
75

@@ -11,16 +9,17 @@ use crate::schema::*;
119
use crate::util::errors::internal;
1210
use crate::views::{EncodableCrate, GoodCrate, PublishWarnings};
1311

14-
use super::{extract_crate_name_and_semver, version_and_crate};
12+
use super::version_and_crate;
1513

1614
/// Handles the `DELETE /crates/:crate_id/:version` route.
1715
///
1816
/// Actually deletion is allowed only in the first 24 hours from creation
19-
pub fn delete(req: &mut dyn RequestExt) -> EndpointResult {
20-
let app = Arc::clone(req.app());
21-
let (crate_name, semver) = extract_crate_name_and_semver(req)?;
22-
let conn = req.db_read()?;
23-
let (version, krate) = version_and_crate(&conn, crate_name, semver)?;
17+
pub async fn delete(
18+
app: AppState,
19+
Path((crate_name, semver)): Path<(String, String)>,
20+
) -> AppResult<Json<GoodCrate>> {
21+
let conn = app.db_read()?;
22+
let (version, krate) = version_and_crate(&conn, &crate_name, &semver)?;
2423

2524
if Utc::now()
2625
.naive_utc()
@@ -54,10 +53,10 @@ pub fn delete(req: &mut dyn RequestExt) -> EndpointResult {
5453
let uploader = app.config.uploader();
5554
uploader
5655
.delete_index(app.http_client(), &krate.name)
57-
.map_err(|e| internal(&format_args!("failed to delete crate: {}", e)))?;
56+
.map_err(|e| internal(format_args!("failed to delete crate: {e}")))?;
5857
}
5958

60-
Ok(req.json(&GoodCrate {
59+
Ok(Json(GoodCrate {
6160
krate: EncodableCrate::from_minimal(krate, Some(&top_versions), None, true, None),
6261
warnings: PublishWarnings {
6362
invalid_categories: vec![],

src/router.rs

+4-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,10 @@ pub fn build_axum_router(state: AppState) -> Router {
2525
.put(krate::owners::add_owners)
2626
.delete(krate::owners::remove_owners),
2727
)
28+
.route(
29+
"/api/v1/crates/:crate_id/:version",
30+
delete(version::delete::delete),
31+
)
2832
.route(
2933
"/api/v1/crates/:crate_id/:version/yank",
3034
delete(version::yank::yank),
@@ -93,7 +97,6 @@ pub fn build_axum_router(state: AppState) -> Router {
9397
"/api/v1/crates/:crate_id/reverse_dependencies",
9498
get(krate::metadata::reverse_dependencies),
9599
)
96-
.route("/api/v1/crates/:crate_id", delete(krate::delete::delete))
97100
.route("/api/v1/keywords", get(keyword::index))
98101
.route("/api/v1/keywords/:keyword_id", get(keyword::show))
99102
.route("/api/v1/categories", get(category::index))

0 commit comments

Comments
 (0)