From f491e18e15c1575fb8ef9fa5097f07dc95e02883 Mon Sep 17 00:00:00 2001 From: Nathan Perry Date: Tue, 6 Aug 2024 19:44:36 -0400 Subject: write batch_delmeme --- src/bin/batch_delmeme.rs | 50 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 src/bin/batch_delmeme.rs (limited to 'src/bin') diff --git a/src/bin/batch_delmeme.rs b/src/bin/batch_delmeme.rs new file mode 100644 index 0000000..99c57fe --- /dev/null +++ b/src/bin/batch_delmeme.rs @@ -0,0 +1,50 @@ +use clap::Parser; +use diesel_async::AsyncPgConnection; +use thulani::db; + +#[derive(clap::Parser)] +struct Opts { + #[arg(short, long)] + user_id: u64, + + #[arg(short, long)] + deleter: u64, + + #[arg(long)] + demo_meme: bool, +} + +async fn create_demo_meme(conn: &mut AsyncPgConnection, owner: u64) -> anyhow::Result<()> { + let meta = db::Metadata::create(conn, owner).await?; + + let meme = db::NewMeme { + title: "my new meme".to_owned(), + content: Some("abc".to_owned()), + metadata_id: meta.id, + audio_id: None, + image_id: None, + }; + let meme = meme.save(conn, owner).await?; + log::debug!("created demo meme: {meme:#?}"); + + Ok(()) +} + +#[tokio::main] +pub async fn main() -> anyhow::Result<()> { + thulani::log_setup::init(false).expect("initializing logging"); + dotenv::dotenv()?; + + let opts = Opts::parse(); + + let mut conn = db::connection().await?; + + if opts.demo_meme { + create_demo_meme(&mut conn, opts.user_id).await?; + } + + let memes_deleted = db::del_memes_by_userid(&mut conn, opts.user_id, opts.deleter).await?; + log::info!("deleted memes: {memes_deleted:?}"); + + Ok(()) +} -- cgit v1.3.1