wasmer_cli/commands/app/cdn/
purge.rs

1use super::{AppIdentOpts, WasmerEnv};
2use crate::commands::AsyncCliCommand;
3
4/// Purge CDN cache for an app.
5#[derive(clap::Parser, Debug)]
6pub struct CmdAppCdnPurge {
7    #[clap(flatten)]
8    pub env: WasmerEnv,
9
10    #[clap(flatten)]
11    pub ident: AppIdentOpts,
12}
13
14#[async_trait::async_trait]
15impl AsyncCliCommand for CmdAppCdnPurge {
16    type Output = ();
17
18    async fn run_async(self) -> Result<(), anyhow::Error> {
19        let client = self.env.client()?;
20        let (_ident, app) = self.ident.load_app(&client).await?;
21
22        let payload = wasmer_backend_api::query::purge_app_cdn_cache(
23            &client,
24            wasmer_backend_api::types::PurgeAppCdnCacheVars { app: app.id },
25        )
26        .await?;
27
28        anyhow::ensure!(payload.success, "CDN cache purge was not successful");
29        println!("CDN cache purged.");
30
31        Ok(())
32    }
33}