Add days_before_now() utility function
This commit is contained in:
parent
d09770913b
commit
203582f801
2 changed files with 12 additions and 9 deletions
15
src/cli.rs
15
src/cli.rs
|
@ -1,5 +1,4 @@
|
||||||
use anyhow::{anyhow, Error};
|
use anyhow::{anyhow, Error};
|
||||||
use chrono::{Duration, Utc};
|
|
||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use uuid::Uuid;
|
use uuid::Uuid;
|
||||||
|
|
||||||
|
@ -51,7 +50,7 @@ use crate::utils::{
|
||||||
generate_rsa_key,
|
generate_rsa_key,
|
||||||
serialize_private_key,
|
serialize_private_key,
|
||||||
},
|
},
|
||||||
datetime::get_min_datetime,
|
datetime::{days_before_now, get_min_datetime},
|
||||||
files::remove_files,
|
files::remove_files,
|
||||||
passwords::hash_password,
|
passwords::hash_password,
|
||||||
};
|
};
|
||||||
|
@ -293,7 +292,7 @@ impl DeleteEmoji {
|
||||||
/// Delete old remote posts
|
/// Delete old remote posts
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
pub struct DeleteExtraneousPosts {
|
pub struct DeleteExtraneousPosts {
|
||||||
days: i64,
|
days: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DeleteExtraneousPosts {
|
impl DeleteExtraneousPosts {
|
||||||
|
@ -302,7 +301,7 @@ impl DeleteExtraneousPosts {
|
||||||
config: &Config,
|
config: &Config,
|
||||||
db_client: &mut impl DatabaseClient,
|
db_client: &mut impl DatabaseClient,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let updated_before = Utc::now() - Duration::days(self.days);
|
let updated_before = days_before_now(self.days);
|
||||||
let posts = find_extraneous_posts(db_client, &updated_before).await?;
|
let posts = find_extraneous_posts(db_client, &updated_before).await?;
|
||||||
for post_id in posts {
|
for post_id in posts {
|
||||||
let deletion_queue = delete_post(db_client, &post_id).await?;
|
let deletion_queue = delete_post(db_client, &post_id).await?;
|
||||||
|
@ -316,7 +315,7 @@ impl DeleteExtraneousPosts {
|
||||||
/// Delete attachments that don't belong to any post
|
/// Delete attachments that don't belong to any post
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
pub struct DeleteUnusedAttachments {
|
pub struct DeleteUnusedAttachments {
|
||||||
days: i64,
|
days: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DeleteUnusedAttachments {
|
impl DeleteUnusedAttachments {
|
||||||
|
@ -325,7 +324,7 @@ impl DeleteUnusedAttachments {
|
||||||
config: &Config,
|
config: &Config,
|
||||||
db_client: &impl DatabaseClient,
|
db_client: &impl DatabaseClient,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let created_before = Utc::now() - Duration::days(self.days);
|
let created_before = days_before_now(self.days);
|
||||||
let deletion_queue = delete_unused_attachments(
|
let deletion_queue = delete_unused_attachments(
|
||||||
db_client,
|
db_client,
|
||||||
&created_before,
|
&created_before,
|
||||||
|
@ -366,7 +365,7 @@ impl DeleteOrphanedFiles {
|
||||||
/// Delete empty remote profiles
|
/// Delete empty remote profiles
|
||||||
#[derive(Parser)]
|
#[derive(Parser)]
|
||||||
pub struct DeleteEmptyProfiles {
|
pub struct DeleteEmptyProfiles {
|
||||||
days: i64,
|
days: u32,
|
||||||
}
|
}
|
||||||
|
|
||||||
impl DeleteEmptyProfiles {
|
impl DeleteEmptyProfiles {
|
||||||
|
@ -375,7 +374,7 @@ impl DeleteEmptyProfiles {
|
||||||
config: &Config,
|
config: &Config,
|
||||||
db_client: &mut impl DatabaseClient,
|
db_client: &mut impl DatabaseClient,
|
||||||
) -> Result<(), Error> {
|
) -> Result<(), Error> {
|
||||||
let updated_before = Utc::now() - Duration::days(self.days);
|
let updated_before = days_before_now(self.days);
|
||||||
let profiles = find_empty_profiles(db_client, &updated_before).await?;
|
let profiles = find_empty_profiles(db_client, &updated_before).await?;
|
||||||
for profile_id in profiles {
|
for profile_id in profiles {
|
||||||
let profile = get_profile_by_id(db_client, &profile_id).await?;
|
let profile = get_profile_by_id(db_client, &profile_id).await?;
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
use chrono::{DateTime, NaiveDateTime, Utc};
|
use chrono::{DateTime, Duration, NaiveDateTime, Utc};
|
||||||
|
|
||||||
pub fn get_min_datetime() -> DateTime<Utc> {
|
pub fn get_min_datetime() -> DateTime<Utc> {
|
||||||
let native = NaiveDateTime::from_timestamp_opt(0, 0)
|
let native = NaiveDateTime::from_timestamp_opt(0, 0)
|
||||||
.expect("0 should be a valid argument");
|
.expect("0 should be a valid argument");
|
||||||
DateTime::from_utc(native, Utc)
|
DateTime::from_utc(native, Utc)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn days_before_now(days: u32) -> DateTime<Utc> {
|
||||||
|
Utc::now() - Duration::days(days.into())
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in a new issue