(mut config: Config, args: &ArgMatches)
| 26 | } |
| 27 | |
| 28 | pub async fn exec(mut config: Config, args: &ArgMatches) -> Result<(), anyhow::Error> { |
| 29 | let domain = args.get_one::<String>("new-name").unwrap(); |
| 30 | let database_identity = args.get_one::<String>("database-identity").unwrap(); |
| 31 | let server = args.get_one::<String>("server").map(|s| s.as_ref()); |
| 32 | let force = args.get_flag("force"); |
| 33 | let auth_header = get_auth_header(&mut config, false, server, !force).await?; |
| 34 | |
| 35 | let domain: DomainName = domain.parse()?; |
| 36 | |
| 37 | let builder = reqwest::Client::new() |
| 38 | .put(format!( |
| 39 | "{}/v1/database/{database_identity}/names", |
| 40 | config.get_host_url(server)? |
| 41 | )) |
| 42 | .header(reqwest::header::CONTENT_TYPE, "application/json") |
| 43 | .body(serde_json::to_string(&[&domain])?); |
| 44 | let builder = add_auth_header_opt(builder, &auth_header); |
| 45 | |
| 46 | let response = builder.send().await?; |
| 47 | let status = &response.status(); |
| 48 | let result: SetDomainsResult = response.json_or_error().await?; |
| 49 | |
| 50 | if !status.is_success() { |
| 51 | anyhow::bail!(match result { |
| 52 | SetDomainsResult::Success => "".to_string(), |
| 53 | SetDomainsResult::PermissionDenied { domain } => format!("Permission denied for domain: {domain}"), |
| 54 | SetDomainsResult::PermissionDeniedOnAny { domains } => |
| 55 | format!("Permission denied for domains: {domains:?}"), |
| 56 | SetDomainsResult::DatabaseNotFound => format!("Database {database_identity} not found"), |
| 57 | SetDomainsResult::NotYourDatabase { .. } => |
| 58 | format!("You cannot rename {database_identity} because it is owned by another identity."), |
| 59 | SetDomainsResult::OtherError(err) => err, |
| 60 | }); |
| 61 | } |
| 62 | |
| 63 | println!("Name set to {domain} for identity {database_identity}."); |
| 64 | |
| 65 | Ok(()) |
| 66 | } |
nothing calls this directly
no test coverage detected
searching dependent graphs…