Skip to content

Commit

Permalink
Merge pull request #10056 from Turbo87/diesel-util
Browse files Browse the repository at this point in the history
util/diesel: Remove obsolete `prelude` module and `Conn` trait
  • Loading branch information
Turbo87 authored Nov 22, 2024
2 parents dfc30d0 + c67b728 commit c865c0a
Show file tree
Hide file tree
Showing 19 changed files with 31 additions and 118 deletions.
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

0 comments on commit c865c0a

Please sign in to comment.