Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/bin/crates-admin/render_readmes.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ use std::{io::Read, path::Path, sync::Arc};
use chrono::{NaiveDateTime, Utc};
use crates_io::storage::Storage;
use crates_io::tasks::spawn_blocking;
use crates_io::util::diesel::prelude::*;
use crates_io_markdown::text_to_html;
use crates_io_tarball::{Manifest, StringOrBool};
use diesel::prelude::*;
use diesel_async::async_connection_wrapper::AsyncConnectionWrapper;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use flate2::read::GzDecoder;
Expand Down
6 changes: 2 additions & 4 deletions src/controllers/crate_owner_invitation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ use crate::auth::Authentication;
use crate::controllers::helpers::pagination::{Page, PaginationOptions};
use crate::models::{Crate, CrateOwnerInvitation, Rights, User};
use crate::schema::{crate_owner_invitations, crates, users};
use crate::util::diesel::prelude::*;
use crate::util::errors::{bad_request, forbidden, internal, AppResult};
use crate::util::{BytesRequest, RequestUtils};
use crate::views::{
Expand All @@ -17,8 +16,9 @@ use axum_extra::json;
use axum_extra::response::ErasedJson;
use chrono::{Duration, Utc};
use diesel::pg::Pg;
use diesel::prelude::*;
use diesel::sql_types::Bool;
use diesel_async::AsyncPgConnection;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use http::request::Parts;
use indexmap::IndexMap;
use std::collections::{HashMap, HashSet};
Expand Down Expand Up @@ -90,8 +90,6 @@ async fn prepare_list(
filter: ListFilter,
conn: &mut AsyncPgConnection,
) -> AppResult<PrivateListResponse> {
use diesel_async::RunQueryDsl;

let pagination: PaginationOptions = PaginationOptions::builder()
.enable_pages(false)
.enable_seek(true)
Expand Down
6 changes: 2 additions & 4 deletions src/controllers/github/secret_scanning.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,15 +2,15 @@ use crate::app::AppState;
use crate::email::Email;
use crate::models::{ApiToken, User};
use crate::schema::api_tokens;
use crate::util::diesel::prelude::*;
use crate::util::errors::{bad_request, AppResult, BoxedAppError};
use crate::util::token::HashedToken;
use anyhow::{anyhow, Context};
use axum::body::Bytes;
use axum::Json;
use base64::{engine::general_purpose, Engine};
use crates_io_github::GitHubPublicKey;
use diesel_async::AsyncPgConnection;
use diesel::prelude::*;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use http::HeaderMap;
use p256::ecdsa::signature::Verifier;
use p256::ecdsa::VerifyingKey;
Expand Down Expand Up @@ -132,8 +132,6 @@ async fn alert_revoke_token(
alert: &GitHubSecretAlert,
conn: &mut AsyncPgConnection,
) -> QueryResult<GitHubSecretAlertFeedbackLabel> {
use diesel_async::RunQueryDsl;

let hashed_token = HashedToken::hash(&alert.token);

// Not using `ApiToken::find_by_api_token()` in order to preserve `last_used_at`
Expand Down
7 changes: 2 additions & 5 deletions src/controllers/krate/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ use crate::models::{
Version, VersionOwnerAction,
};
use crate::schema::*;
use crate::util::diesel::prelude::*;
use crate::util::errors::{bad_request, crate_not_found, AppResult, BoxedAppError};
use crate::util::{redirect, RequestUtils};
use crate::views::{
Expand All @@ -21,6 +20,8 @@ use axum::extract::Path;
use axum::response::{IntoResponse, Response};
use axum_extra::json;
use axum_extra::response::ErasedJson;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use http::request::Parts;
use std::cmp::Reverse;
use std::str::FromStr;
Expand All @@ -32,8 +33,6 @@ pub async fn show_new(app: AppState, req: Parts) -> AppResult<ErasedJson> {

/// Handles the `GET /crates/:crate_id` route.
pub async fn show(app: AppState, Path(name): Path<String>, req: Parts) -> AppResult<ErasedJson> {
use diesel_async::RunQueryDsl;

let mut conn = app.db_read().await?;

let include = req
Expand Down Expand Up @@ -248,8 +247,6 @@ pub async fn reverse_dependencies(
Path(name): Path<String>,
req: Parts,
) -> AppResult<ErasedJson> {
use diesel_async::RunQueryDsl;

let mut conn = app.db_read().await?;

let pagination_options = PaginationOptions::builder().gather(&req)?;
Expand Down
12 changes: 2 additions & 10 deletions src/controllers/krate/owners.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

use crate::models::{krate::NewOwnerInvite, token::EndpointScope};
use crate::models::{Crate, Owner, Rights, Team, User};
use crate::util::diesel::prelude::*;
use crate::util::errors::{bad_request, crate_not_found, custom, AppResult};
use crate::views::EncodableOwner;
use crate::{app::AppState, models::krate::OwnerAddError};
Expand All @@ -11,16 +10,15 @@ use axum::extract::Path;
use axum::Json;
use axum_extra::json;
use axum_extra::response::ErasedJson;
use diesel::prelude::*;
use diesel_async::scoped_futures::ScopedFutureExt;
use diesel_async::AsyncConnection;
use diesel_async::{AsyncConnection, RunQueryDsl};
use http::request::Parts;
use http::StatusCode;
use secrecy::{ExposeSecret, SecretString};

/// Handles the `GET /crates/:crate_id/owners` route.
pub async fn owners(state: AppState, Path(crate_name): Path<String>) -> AppResult<ErasedJson> {
use diesel_async::RunQueryDsl;

let mut conn = state.db_read().await?;

let krate: Crate = Crate::by_name(&crate_name)
Expand All @@ -41,8 +39,6 @@ pub async fn owners(state: AppState, Path(crate_name): Path<String>) -> AppResul

/// Handles the `GET /crates/:crate_id/owner_team` route.
pub async fn owner_team(state: AppState, Path(crate_name): Path<String>) -> AppResult<ErasedJson> {
use diesel_async::RunQueryDsl;

let mut conn = state.db_read().await?;
let krate: Crate = Crate::by_name(&crate_name)
.first(&mut conn)
Expand All @@ -61,8 +57,6 @@ pub async fn owner_team(state: AppState, Path(crate_name): Path<String>) -> AppR

/// Handles the `GET /crates/:crate_id/owner_user` route.
pub async fn owner_user(state: AppState, Path(crate_name): Path<String>) -> AppResult<ErasedJson> {
use diesel_async::RunQueryDsl;

let mut conn = state.db_read().await?;

let krate: Crate = Crate::by_name(&crate_name)
Expand Down Expand Up @@ -113,8 +107,6 @@ async fn modify_owners(
body: ChangeOwnersRequest,
add: bool,
) -> AppResult<ErasedJson> {
use diesel_async::RunQueryDsl;

let logins = body.owners;

// Bound the number of invites processed per request to limit the cost of
Expand Down
2 changes: 1 addition & 1 deletion src/controllers/krate/publish.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

use crate::app::AppState;
use crate::auth::AuthCheck;
use crate::util::diesel::prelude::*;
use crate::worker::jobs::{
self, CheckTyposquat, SendPublishNotificationsJob, UpdateDefaultVersion,
};
Expand All @@ -13,6 +12,7 @@ use chrono::{DateTime, SecondsFormat, Utc};
use crates_io_tarball::{process_tarball, TarballError};
use crates_io_worker::BackgroundJob;
use diesel::dsl::{exists, select};
use diesel::prelude::*;
use diesel_async::scoped_futures::ScopedFutureExt;
use diesel_async::{AsyncConnection, AsyncPgConnection, RunQueryDsl};
use futures_util::TryStreamExt;
Expand Down
6 changes: 2 additions & 4 deletions src/controllers/krate/search.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
//! Endpoint for searching and discovery functionality

use crate::auth::AuthCheck;
use crate::util::diesel::prelude::*;
use axum_extra::json;
use axum_extra::response::ErasedJson;
use diesel::dsl::{exists, sql, InnerJoinQuerySource, LeftJoinQuerySource};
use diesel::prelude::*;
use diesel::sql_types::{Bool, Text};
use diesel_async::AsyncPgConnection;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use diesel_full_text_search::*;
use http::request::Parts;
use std::sync::OnceLock;
Expand Down Expand Up @@ -46,8 +46,6 @@ use crate::util::RequestUtils;
/// function out to cover the different use cases, and create unit tests
/// for them.
pub async fn search(app: AppState, req: Parts) -> AppResult<ErasedJson> {
use diesel_async::RunQueryDsl;

let mut conn = app.db_read().await?;

use diesel::sql_types::Float;
Expand Down
3 changes: 1 addition & 2 deletions src/controllers/krate/versions.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
//! Endpoint for versions of a crate

use crate::util::diesel::prelude::*;
use axum::extract::Path;
use axum_extra::json;
use axum_extra::response::ErasedJson;
use diesel::dsl::not;
use diesel::prelude::*;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use futures_util::{future, TryStreamExt};
use http::request::Parts;
Expand Down Expand Up @@ -93,7 +93,6 @@ async fn list_by_date(
req: &Parts,
conn: &mut AsyncPgConnection,
) -> AppResult<PaginatedVersionsAndPublishers> {
use diesel_async::RunQueryDsl;
use seek::*;

let mut query = versions::table
Expand Down
2 changes: 1 addition & 1 deletion src/controllers/token.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ use crate::views::EncodableApiTokenWithToken;
use crate::app::AppState;
use crate::auth::AuthCheck;
use crate::models::token::{CrateScope, EndpointScope};
use crate::util::diesel::prelude::*;
use crate::util::errors::{bad_request, AppResult};
use axum::extract::{Path, Query};
use axum::response::{IntoResponse, Response};
Expand All @@ -16,6 +15,7 @@ use axum_extra::response::ErasedJson;
use chrono::NaiveDateTime;
use diesel::data_types::PgInterval;
use diesel::dsl::{now, IntervalDsl};
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use http::request::Parts;
use http::StatusCode;
Expand Down
7 changes: 2 additions & 5 deletions src/controllers/user/me.rs
Original file line number Diff line number Diff line change
@@ -1,10 +1,11 @@
use crate::auth::AuthCheck;
use crate::util::diesel::prelude::*;
use axum::extract::Path;
use axum::response::Response;
use axum::Json;
use axum_extra::json;
use axum_extra::response::ErasedJson;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use http::request::Parts;
use std::collections::HashMap;

Expand All @@ -20,8 +21,6 @@ use crate::views::{EncodableMe, EncodablePrivateUser, EncodableVersion, OwnedCra

/// Handles the `GET /me` route.
pub async fn me(app: AppState, req: Parts) -> AppResult<Json<EncodableMe>> {
use diesel_async::RunQueryDsl;

let mut conn = app.db_read_prefer_primary().await?;
let user_id = AuthCheck::only_cookie()
.check(&req, &mut conn)
Expand Down Expand Up @@ -105,7 +104,6 @@ pub async fn updates(app: AppState, req: Parts) -> AppResult<ErasedJson> {
/// Handles the `PUT /confirm/:email_token` route
pub async fn confirm_user_email(state: AppState, Path(token): Path<String>) -> AppResult<Response> {
use diesel::update;
use diesel_async::RunQueryDsl;

let mut conn = state.db_write().await?;

Expand All @@ -124,7 +122,6 @@ pub async fn confirm_user_email(state: AppState, Path(token): Path<String>) -> A
/// Handles `PUT /me/email_notifications` route
pub async fn update_email_notifications(app: AppState, req: BytesRequest) -> AppResult<Response> {
use diesel::pg::upsert::excluded;
use diesel_async::RunQueryDsl;

let (parts, body) = req.0.into_parts();

Expand Down
5 changes: 2 additions & 3 deletions src/controllers/user/update.rs
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,12 @@ use crate::auth::AuthCheck;
use crate::controllers::helpers::ok_true;
use crate::models::NewEmail;
use crate::schema::{emails, users};
use crate::util::diesel::prelude::*;
use crate::util::errors::{bad_request, server_error, AppResult};
use axum::extract::Path;
use axum::response::Response;
use axum::Json;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use http::request::Parts;
use lettre::Address;
use secrecy::{ExposeSecret, SecretString};
Expand All @@ -30,8 +31,6 @@ pub async fn update_user(
req: Parts,
Json(user_update): Json<UserUpdate>,
) -> AppResult<Response> {
use diesel_async::RunQueryDsl;

let mut conn = state.db_write().await?;
let auth = AuthCheck::default().check(&req, &mut conn).await?;

Expand Down
5 changes: 2 additions & 3 deletions src/controllers/version/downloads.rs
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ use super::version_and_crate;
use crate::app::AppState;
use crate::models::VersionDownload;
use crate::schema::*;
use crate::util::diesel::prelude::*;
use crate::util::errors::{version_not_found, AppResult};
use crate::util::{redirect, RequestUtils};
use crate::views::EncodableVersionDownload;
Expand All @@ -15,6 +14,8 @@ use axum::response::{IntoResponse, Response};
use axum_extra::json;
use axum_extra::response::ErasedJson;
use chrono::{Duration, NaiveDate, Utc};
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use http::request::Parts;

/// Handles the `GET /crates/:crate_id/:version/download` route.
Expand All @@ -39,8 +40,6 @@ pub async fn downloads(
Path((crate_name, version)): Path<(String, String)>,
req: Parts,
) -> AppResult<ErasedJson> {
use diesel_async::RunQueryDsl;

if semver::Version::parse(&version).is_err() {
return Err(version_not_found(&crate_name, &version));
}
Expand Down
8 changes: 2 additions & 6 deletions src/controllers/version/metadata.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,8 @@ use axum_extra::json;
use axum_extra::response::ErasedJson;
use crates_io_database::schema::{crates, dependencies};
use crates_io_worker::BackgroundJob;
use diesel_async::AsyncPgConnection;
use diesel::prelude::*;
use diesel_async::{AsyncPgConnection, RunQueryDsl};
use http::request::Parts;
use http::StatusCode;
use serde::Deserialize;
Expand All @@ -23,7 +24,6 @@ use crate::models::{
};
use crate::rate_limiter::LimitedAction;
use crate::schema::versions;
use crate::util::diesel::prelude::*;
use crate::util::errors::{bad_request, custom, version_not_found, AppResult};
use crate::views::{EncodableDependency, EncodableVersion};
use crate::worker::jobs::{SyncToGitIndex, SyncToSparseIndex, UpdateDefaultVersion};
Expand Down Expand Up @@ -51,8 +51,6 @@ pub async fn dependencies(
state: AppState,
Path((crate_name, version)): Path<(String, String)>,
) -> AppResult<ErasedJson> {
use diesel_async::RunQueryDsl;

if semver::Version::parse(&version).is_err() {
return Err(version_not_found(&crate_name, &version));
}
Expand Down Expand Up @@ -182,8 +180,6 @@ pub async fn perform_version_yank_update(
yanked: Option<bool>,
yank_message: Option<String>,
) -> AppResult<()> {
use diesel_async::RunQueryDsl;

let api_token_id = auth.api_token_id();
let user = auth.user();
let owners = krate.owners(conn).await?;
Expand Down
Loading