Skip to content

Commit

Permalink
pihole: request::get now directly return the deserialized json
Browse files Browse the repository at this point in the history
  • Loading branch information
devmatteini committed Dec 26, 2020
1 parent 237e560 commit 18fa2ca
Show file tree
Hide file tree
Showing 2 changed files with 4 additions and 14 deletions.
9 changes: 2 additions & 7 deletions src/pihole/mod.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
use serde_json::Value as JsonValue;
use ureq::Response;

use crate::pihole::config::PiHoleConfig;
use crate::pihole::disable_time::PiHoleDisableTime;
Expand Down Expand Up @@ -30,9 +29,7 @@ pub fn enable(config: &PiHoleConfig) -> PiholeResult {
let url = format!("{}?enable&auth={}", &config.api_url, &config.api_token);
let response = request::get(&url)?;

let json = request::deserialize_response_json(response)?;

process_response(json, ExpectedStatus::Enabled, PiHoleError::NotEnabled)
process_response(response, ExpectedStatus::Enabled, PiHoleError::NotEnabled)
}

pub fn disable(config: &PiHoleConfig, time: PiHoleDisableTime) -> PiholeResult {
Expand All @@ -44,9 +41,7 @@ pub fn disable(config: &PiHoleConfig, time: PiHoleDisableTime) -> PiholeResult {
);
let response = request::get(&url)?;

let json = request::deserialize_response_json(response)?;

process_response(json, ExpectedStatus::Disabled, PiHoleError::NotDisabled)
process_response(response, ExpectedStatus::Disabled, PiHoleError::NotDisabled)
}

fn process_response(
Expand Down
9 changes: 2 additions & 7 deletions src/pihole/request.rs
Original file line number Diff line number Diff line change
@@ -1,19 +1,14 @@
use serde_json::Value;
use ureq::Response;
use serde_json::Value as JsonValue;

use crate::pihole::error::PiHoleError;

pub fn get(url: &str) -> Result<Response, PiHoleError> {
pub fn get(url: &str) -> Result<JsonValue, PiHoleError> {
let response = ureq::get(url).timeout_connect(7_000).call();

if let Some(err) = response.synthetic_error() {
return Err(PiHoleError::HttpError(err.body_text()));
}

Ok(response)
}

pub fn deserialize_response_json(response: Response) -> Result<Value, PiHoleError> {
response
.into_json()
.map_err(|_| PiHoleError::InvalidResponse)
Expand Down

0 comments on commit 18fa2ca

Please sign in to comment.