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
4 changes: 2 additions & 2 deletions src/config/server.rs
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ pub struct Server {
pub domain_name: String,
pub allowed_origins: AllowedOrigins,
pub downloads_persist_interval: Duration,
pub ownership_invitations_expiration_days: u64,
pub ownership_invitations_expiration: chrono::Duration,
pub metrics_authorization_token: Option<String>,
pub instance_metrics_log_every_seconds: Option<u64>,
pub blocked_routes: HashSet<String>,
Expand Down Expand Up @@ -211,7 +211,7 @@ impl Server {
downloads_persist_interval: var_parsed("DOWNLOADS_PERSIST_INTERVAL_MS")?
.map(Duration::from_millis)
.unwrap_or(Duration::from_secs(60)),
ownership_invitations_expiration_days: 30,
ownership_invitations_expiration: chrono::Duration::days(30),
metrics_authorization_token: var("METRICS_AUTHORIZATION_TOKEN")?,
instance_metrics_log_every_seconds: var_parsed("INSTANCE_METRICS_LOG_EVERY_SECONDS")?,
blocked_routes: HashSet::from_iter(list("BLOCKED_ROUTES")?),
Expand Down
4 changes: 2 additions & 2 deletions src/controllers/crate_owner_invitation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ use axum::extract::{FromRequestParts, Path, Query};
use axum::Json;
use axum_extra::json;
use axum_extra::response::ErasedJson;
use chrono::{Duration, Utc};
use chrono::Utc;
use diesel::pg::Pg;
use diesel::prelude::*;
use diesel::sql_types::Bool;
Expand Down Expand Up @@ -175,7 +175,7 @@ async fn prepare_list(
};

// Load all the non-expired invitations matching the filter.
let expire_cutoff = Duration::days(config.ownership_invitations_expiration_days as i64);
let expire_cutoff = config.ownership_invitations_expiration;
let query = crate_owner_invitations::table
.filter(sql_filter)
.filter(crate_owner_invitations::created_at.gt((Utc::now() - expire_cutoff).naive_utc()))
Expand Down
3 changes: 1 addition & 2 deletions src/models/crate_owner_invitation.rs
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,6 @@ impl CrateOwnerInvitation {
}

pub fn expires_at(&self, config: &config::Server) -> NaiveDateTime {
let days = chrono::Duration::days(config.ownership_invitations_expiration_days as i64);
self.created_at + days
self.created_at + config.ownership_invitations_expiration
}
}
6 changes: 3 additions & 3 deletions src/tests/owners.rs
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ use crate::views::{
};

use crate::schema::users;
use chrono::{Duration, Utc};
use chrono::Utc;
use diesel::prelude::*;
use diesel_async::RunQueryDsl;
use http::StatusCode;
Expand Down Expand Up @@ -625,8 +625,8 @@ pub async fn expire_invitation(app: &TestApp, crate_id: i32) {

let mut conn = app.db_conn().await;

let expiration = app.as_inner().config.ownership_invitations_expiration_days as i64;
let created_at = (Utc::now() - Duration::days(expiration)).naive_utc();
let expiration = app.as_inner().config.ownership_invitations_expiration;
let created_at = (Utc::now() - expiration).naive_utc();

diesel::update(crate_owner_invitations::table)
.set(crate_owner_invitations::created_at.eq(created_at))
Expand Down
2 changes: 1 addition & 1 deletion src/tests/util/test_app.rs
Original file line number Diff line number Diff line change
Expand Up @@ -466,7 +466,7 @@ fn simple_config() -> config::Server {
domain_name: "crates.io".into(),
allowed_origins: Default::default(),
downloads_persist_interval: Duration::from_secs(1),
ownership_invitations_expiration_days: 30,
ownership_invitations_expiration: chrono::Duration::days(30),
metrics_authorization_token: None,
instance_metrics_log_every_seconds: None,
blocked_routes: HashSet::new(),
Expand Down