Skip to content

Commit 853f725

Browse files
committed
Fixed Libnullpay integration tests
Signed-off-by: artem.ivanov <[email protected]>
1 parent e5ea636 commit 853f725

File tree

1 file changed

+20
-5
lines changed

1 file changed

+20
-5
lines changed

libnullpay/src/services/response_storage.rs

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,26 @@ pub fn parse_req_id_from_request(request: &str) -> Result<u64, ErrorCode> {
2323

2424
pub fn get_response(response: &str) -> Result<String, ErrorCode> {
2525
let val = str_to_val(response)?;
26-
let object = val_to_obj(&val)?;
27-
let result = get_val_from_obj(object, "result")?;
28-
let result_obj = val_to_obj(result)?;
29-
let req_id = get_val_from_obj(result_obj, "reqId")?;
30-
let req_id = val_to_u64(req_id)?;
26+
27+
let req_id = match val["result"]["ver"].as_str() {
28+
Some("1") =>
29+
val.get("result")
30+
.and_then(|result| result.as_object())
31+
.and_then(|result| result.get("txn"))
32+
.and_then(|txn| txn.as_object())
33+
.and_then(|txn| txn.get("metadata"))
34+
.and_then(|metadata| metadata.as_object())
35+
.and_then(|metadata| metadata.get("reqId"))
36+
.and_then(|req_id| req_id.as_i64()),
37+
None =>
38+
val.get("result")
39+
.and_then(|result| result.as_object())
40+
.and_then(|result| result.get("reqId"))
41+
.and_then(|req_id| req_id.as_i64()),
42+
_ => return Err(ErrorCode::CommonInvalidState)
43+
};
44+
45+
let req_id = req_id.ok_or(ErrorCode::CommonInvalidStructure)?;
3146

3247
let mut responses = RESPONSES.lock().unwrap();
3348
match responses.remove(req_id.to_string().as_str()) {

0 commit comments

Comments
 (0)