Skip to content

Commit

Permalink
Remove double json encoding on http response (mimblewimble#114)
Browse files Browse the repository at this point in the history
  • Loading branch information
jaspervdm authored and yeastplume committed May 21, 2019
1 parent a45f8d3 commit db818ac
Showing 1 changed file with 3 additions and 26 deletions.
29 changes: 3 additions & 26 deletions controller/src/controller.rs
Original file line number Diff line number Diff line change
Expand Up @@ -766,7 +766,7 @@ where
&self,
req: Request<Body>,
api: Foreign<T, C, K>,
) -> Box<dyn Future<Item = String, Error = Error> + Send> {
) -> Box<dyn Future<Item = Slate, Error = Error> + Send> {
Box::new(parse_body(req).and_then(
//TODO: No way to insert a message from the params
move |slate_str: String| {
Expand All @@ -776,7 +776,7 @@ where
err(e)
} else {
match api.receive_tx(&slate, None, None) {
Ok(s) => ok(serde_json::to_string(&s).unwrap()),
Ok(s) => ok(s),
Err(e) => {
error!("receive_tx: failed with error: {}", e);
err(e)
Expand All @@ -803,7 +803,7 @@ where
),
"receive_tx" => Box::new(
self.receive_tx(req, api)
.and_then(|res| ok(json_response_slate(&res))),
.and_then(|res| ok(json_response(&res))),
),
_ => Box::new(ok(response(StatusCode::BAD_REQUEST, "unknown action"))),
}
Expand Down Expand Up @@ -915,29 +915,6 @@ where
}
}

// As above, dealing with stringified slate output
// from older versions.
// Older versions are expecting a slate objects, anything from
// 1.1.0 up is expecting a string
fn json_response_slate<T>(s: &T) -> Response<Body>
where
T: Serialize,
{
match serde_json::to_string(s) {
Ok(mut json) => {
if let None = json.find("version_info") {
let mut r = json.clone();
r.pop();
r.remove(0);
// again, for backwards slate compat
json = r.replace("\\\"", "\"")
}
response(StatusCode::OK, json)
}
Err(_) => response(StatusCode::INTERNAL_SERVER_ERROR, ""),
}
}

// pretty-printed version of above
fn json_response_pretty<T>(s: &T) -> Response<Body>
where
Expand Down

0 comments on commit db818ac

Please sign in to comment.