use std::path::PathBuf;
use usage_rs::{Args, RunAsyncWith};
use yt::api::Parent;
use crate::cli::Ctx;
#[derive(Args)]
#[usage(effect = "write")]
pub(crate) struct Upload {
#[usage(arg, name = "ID")]
id: String,
#[usage(arg, name = "FILE", required)]
files: Vec<PathBuf>,
}
impl RunAsyncWith<&Ctx> for Upload {
type Output = yt::Result<()>;
async fn run_async_with(self, ctx: &Ctx) -> Self::Output {
let parent = Parent::Article(ctx.instance()?.article_id(&self.id)?);
crate::cli::shared::attachment::upload(ctx, parent, self.files).await
}
}