Move mock to own function
This commit is contained in:
parent
4f6d474c53
commit
31ed4a0eaa
108
src/requests.rs
108
src/requests.rs
|
@ -28,40 +28,8 @@ struct Err {
|
|||
#[serde(rename = "error-type")]
|
||||
error_type: String,
|
||||
}
|
||||
|
||||
pub fn get_rates(code: &String) -> Result<Status, reqwest::Error> {
|
||||
if !cfg!(test) {
|
||||
let response = reqwest::blocking::get(format!(
|
||||
"{}{}{}{}",
|
||||
get_endpoint(),
|
||||
get_api_key().expect("Error when getting api key from cache"),
|
||||
"/latest/",
|
||||
code.to_uppercase()
|
||||
))?;
|
||||
if response.status().is_success() {
|
||||
let response: ConversionRates =
|
||||
serde_json::from_str(&response.text()?).expect("Error when deserializng");
|
||||
cache::add_rates(
|
||||
response.time_next_update_unix,
|
||||
&response.base_code,
|
||||
&response.conversion_rates,
|
||||
)
|
||||
.expect("Error while caching response");
|
||||
return Ok(Status::OK);
|
||||
} else {
|
||||
let err: Err =
|
||||
serde_json::from_str(&response.text()?).expect("Error when deserializng");
|
||||
if err.error_type == "invalid-key" {
|
||||
return Ok(Status::INVALID);
|
||||
} else if err.error_type == "quota-reached" {
|
||||
return Ok(Status::LIMIT);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(Status::ERROR)
|
||||
}
|
||||
// TEST
|
||||
else {
|
||||
#[cfg(test)]
|
||||
fn mock_get_rates(code: &String) -> Result<Status, reqwest::Error> {
|
||||
let response: ConversionRates = match code.as_str() {
|
||||
"PLN" => serde_json::from_str(include_str!(concat!(
|
||||
".",
|
||||
|
@ -91,9 +59,60 @@ pub fn get_rates(code: &String) -> Result<Status, reqwest::Error> {
|
|||
.expect("Error while caching response");
|
||||
Ok(Status::OK)
|
||||
}
|
||||
#[cfg(test)]
|
||||
pub fn mock_get_currencies() -> Result<Status, reqwest::Error> {
|
||||
let codes: CurrencyCodes = serde_json::from_str(include_str!(concat!(
|
||||
".",
|
||||
crate::main_separator!(),
|
||||
"mock_data",
|
||||
crate::main_separator!(),
|
||||
"codes.json"
|
||||
)))
|
||||
.expect("Error when deserializng");
|
||||
for code in codes.supported_codes {
|
||||
cache::add_code(code).expect("Error when adding code to cache");
|
||||
}
|
||||
return Ok(Status::OK);
|
||||
}
|
||||
|
||||
pub fn get_rates(code: &String) -> Result<Status, reqwest::Error> {
|
||||
if cfg!(test) {
|
||||
#[cfg(test)]
|
||||
return mock_get_rates(code);
|
||||
}
|
||||
let response = reqwest::blocking::get(format!(
|
||||
"{}{}{}{}",
|
||||
get_endpoint(),
|
||||
get_api_key().expect("Error when getting api key from cache"),
|
||||
"/latest/",
|
||||
code.to_uppercase()
|
||||
))?;
|
||||
if response.status().is_success() {
|
||||
let response: ConversionRates =
|
||||
serde_json::from_str(&response.text()?).expect("Error when deserializng");
|
||||
cache::add_rates(
|
||||
response.time_next_update_unix,
|
||||
&response.base_code,
|
||||
&response.conversion_rates,
|
||||
)
|
||||
.expect("Error while caching response");
|
||||
return Ok(Status::OK);
|
||||
} else {
|
||||
let err: Err = serde_json::from_str(&response.text()?).expect("Error when deserializng");
|
||||
if err.error_type == "invalid-key" {
|
||||
return Ok(Status::INVALID);
|
||||
} else if err.error_type == "quota-reached" {
|
||||
return Ok(Status::LIMIT);
|
||||
}
|
||||
}
|
||||
|
||||
Ok(Status::ERROR)
|
||||
}
|
||||
pub fn get_currencies() -> Result<Status, reqwest::Error> {
|
||||
if !cfg!(test) {
|
||||
if cfg!(test) {
|
||||
#[cfg(test)]
|
||||
return mock_get_currencies();
|
||||
}
|
||||
let response = reqwest::blocking::get(format!(
|
||||
"{}{}{}",
|
||||
get_endpoint(),
|
||||
|
@ -108,8 +127,7 @@ pub fn get_currencies() -> Result<Status, reqwest::Error> {
|
|||
}
|
||||
return Ok(Status::OK);
|
||||
} else {
|
||||
let err: Err =
|
||||
serde_json::from_str(&response.text()?).expect("Error when deserializng");
|
||||
let err: Err = serde_json::from_str(&response.text()?).expect("Error when deserializng");
|
||||
if err.error_type == "invalid-key" {
|
||||
return Ok(Status::INVALID);
|
||||
} else if err.error_type == "quota-reached" {
|
||||
|
@ -119,19 +137,3 @@ pub fn get_currencies() -> Result<Status, reqwest::Error> {
|
|||
|
||||
Ok(Status::ERROR)
|
||||
}
|
||||
//TEST
|
||||
else {
|
||||
let codes: CurrencyCodes = serde_json::from_str(include_str!(concat!(
|
||||
".",
|
||||
crate::main_separator!(),
|
||||
"mock_data",
|
||||
crate::main_separator!(),
|
||||
"codes.json"
|
||||
)))
|
||||
.expect("Error when deserializng");
|
||||
for code in codes.supported_codes {
|
||||
cache::add_code(code).expect("Error when adding code to cache");
|
||||
}
|
||||
return Ok(Status::OK);
|
||||
}
|
||||
}
|
||||
|
|
Reference in New Issue