oxide_cli/addons/
update.rs1use 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}