Skip to main content

oxide_cli/addons/
update.rs

1use anyhow::Result;
2use serde::{Deserialize, Serialize};
3
4use crate::{AppContext, auth::token::get_auth_user};
5
6#[derive(Serialize)]
7struct UpdateAddonDto {
8  url: String,
9}
10
11#[derive(Deserialize)]
12struct UpdateAddonResponse {
13  message: String,
14}
15
16pub async fn update_addon(ctx: &AppContext, addon_url: &str) -> Result<()> {
17  let user = get_auth_user(&ctx.paths.auth)?;
18
19  let res: UpdateAddonResponse = ctx
20    .client
21    .patch(format!("{}/addon", ctx.backend_url))
22    .bearer_auth(user.token)
23    .header("Content-Type", "application/json")
24    .json(&UpdateAddonDto {
25      url: addon_url.to_string(),
26    })
27    .send()
28    .await?
29    .error_for_status()?
30    .json()
31    .await?;
32
33  println!("✅ {}", res.message);
34  Ok(())
35}