gitea_sdk/api/orgs/
edit.rs

1use build_it::Builder;
2use serde::{Deserialize, Serialize};
3
4use crate::{
5    error::Result,
6    model::orgs::{Organization, Visibility},
7    Client,
8};
9
10#[derive(Debug, Serialize, Deserialize, Builder)]
11#[build_it(into)]
12pub struct EditOrgBuilder {
13    #[serde(skip)]
14    #[skip]
15    name: String,
16    description: Option<String>,
17    email: Option<String>,
18    full_name: Option<String>,
19    location: Option<String>,
20    repo_admin_change_team_access: Option<bool>,
21    visibility: Option<Visibility>,
22    website: Option<String>,
23}
24
25impl EditOrgBuilder {
26    pub fn new(name: impl ToString) -> Self {
27        Self {
28            name: name.to_string(),
29            description: None,
30            email: None,
31            full_name: None,
32            location: None,
33            repo_admin_change_team_access: None,
34            visibility: None,
35            website: None,
36        }
37    }
38    pub async fn send(&self, client: &Client) -> Result<Organization> {
39        let req = client
40            .patch(format!("orgs/{}", self.name))
41            .json(&self)
42            .build()?;
43        let res = client.make_request(req).await?;
44        client.parse_response(res).await
45    }
46}