Skip to content

Commit

Permalink
Merge pull request #10 from tmcl/master
Browse files Browse the repository at this point in the history
Support API Tokens
  • Loading branch information
colemickens committed Apr 26, 2021
2 parents ec0cbb0 + 5b0e98a commit dfd6200
Showing 1 changed file with 18 additions and 6 deletions.
24 changes: 18 additions & 6 deletions src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ use trust_dns_client::udp::UdpClientConnection;
const NS1_GOOGLE_COM_IP_ADDR: &'static str = "216.239.32.10:53";

fn env_var(n: &str) -> String {
let err = format!("Environment Variable '{}' must be set!", &n);
let err = "Environment Variables CLOUDFLARE_RECORDS and either CLOUDFLARE_APITOKEN or CLOUDFLARE_EMAIL and CLOUDFLARE_APIKEY must be set!";
env::var(n).ok().expect(&err)
}

Expand All @@ -33,16 +33,28 @@ fn cloudflare_api(
url: &str,
body: Option<String>,
) -> Result<Value, String> {
let cloudflare_apikey = env_var("CLOUDFLARE_APIKEY");
let cloudflare_email = env_var("CLOUDFLARE_EMAIL");

let request = match body {
Some(body) => client.put(url).body(body),
None => client.get(url),
};
let response_json: Value = request
.header("X-Auth-Key", cloudflare_apikey.to_owned())
.header("X-Auth-Email", cloudflare_email.to_owned())

let authorized_request = match env::var("CLOUDFLARE_APITOKEN") {
Ok(val) => {
let mut bearer = "Bearer ".to_owned();
bearer.push_str(&val);
request.header("Authorization", bearer.to_owned())
}
Err(_e) => {
let cloudflare_apikey = env_var("CLOUDFLARE_APIKEY");
let cloudflare_email = env_var("CLOUDFLARE_EMAIL");
request
.header("X-Auth-Key", cloudflare_apikey.to_owned())
.header("X-Auth-Email", cloudflare_email.to_owned())
}
};

let response_json: Value = authorized_request
.send()
.unwrap()
.json()
Expand Down

0 comments on commit dfd6200

Please sign in to comment.