Skip to content

Commit 177e232

Browse files
committed
Inline check_response
1 parent 76a08d9 commit 177e232

File tree

1 file changed

+8
-15
lines changed

1 file changed

+8
-15
lines changed

core/src/response.rs

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -19,29 +19,22 @@ where
1919
{
2020
let response: Output = serde_json::from_slice(response_raw)
2121
.chain_err(|| ErrorKind::ResponseError("Not valid json"))?;
22+
ensure!(
23+
response.version() == Some(Version::V2),
24+
ErrorKind::ResponseError("Not JSON-RPC 2.0 compatible")
25+
);
26+
ensure!(
27+
response.id() == &expected_id,
28+
ErrorKind::ResponseError("Response id not equal to request id")
29+
);
2230
match response {
2331
Output::Success(success) => {
24-
check_response(success.jsonrpc, success.id, expected_id)?;
2532
trace!("Received json result: {}", success.result);
2633
serde_json::from_value::<R>(success.result)
2734
.chain_err(|| ErrorKind::ResponseError("Not valid for target type"))
2835
}
2936
Output::Failure(failure) => {
30-
check_response(failure.jsonrpc, failure.id, expected_id)?;
3137
Err(ErrorKind::JsonRpcError(failure.error).into())
3238
}
3339
}
3440
}
35-
36-
/// Validate if response is a valid JSON-RPC 2.0 response object with the correct Id.
37-
fn check_response(version: Option<Version>, id: Id, expected_id: Id) -> Result<()> {
38-
ensure!(
39-
version == Some(Version::V2),
40-
ErrorKind::ResponseError("Not JSON-RPC 2.0 compatible")
41-
);
42-
ensure!(
43-
id == expected_id,
44-
ErrorKind::ResponseError("Response id not equal to request id")
45-
);
46-
Ok(())
47-
}

0 commit comments

Comments
 (0)