Skip to main content

oxide_cli/templates/
update.rs

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