gitea_sdk/api/orgs/
create.rs1use 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 CreateOrgBuilder {
13 #[skip]
14 username: String,
15 description: Option<String>,
16 email: Option<String>,
17 full_name: Option<String>,
18 location: Option<String>,
19 repo_admin_change_team_access: Option<bool>,
20 visibility: Option<Visibility>,
21 website: Option<String>,
22}
23
24impl CreateOrgBuilder {
25 pub fn new(name: impl ToString) -> Self {
26 Self {
27 username: name.to_string(),
28 description: None,
29 email: None,
30 full_name: None,
31 location: None,
32 repo_admin_change_team_access: None,
33 visibility: None,
34 website: None,
35 }
36 }
37 pub async fn send(&self, client: &Client) -> Result<Organization> {
39 let req = client.post("orgs").json(&self).build()?;
40 let res = client.make_request(req).await?;
41 client.parse_response(res).await
42 }
43}