use crate::{api, prelude::Result};
pub fn get_username(configuration: &json::JsonValue) -> Result<String> {
let url = format!(
"user/search?query={}",
configuration["email"].as_str().unwrap()
);
let api_request = api::request::ApiRequest {
url,
username: configuration["email"].as_str().unwrap().to_string(),
password: configuration["token"].as_str().unwrap().to_string(),
json: json::object! {},
namespace: configuration["namespace"].as_str().unwrap().to_string(),
version: configuration["jira-version"]
.as_str()
.unwrap_or("")
.to_string()
.parse::<u8>()
.unwrap_or(3),
auth_mode: configuration["auth_mode"]
.as_str()
.unwrap_or("Basic")
.to_string(),
};
let response = api::get(api_request).unwrap();
match response[0]["accountId"].as_str() {
Some(acc_id) => Ok(String::from(acc_id)),
None => Err("Authentication Failed".into()),
}
}