feat: properly handle RPC errors
parent
7efa42f1e5
commit
e4ccbddb0c
11
client.v
11
client.v
|
@ -24,8 +24,9 @@ pub fn new_with_url(url string) &Client {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
struct SuccessResponse {
|
struct Response {
|
||||||
result_count int [json: resultCount]
|
@type string [json: 'type']
|
||||||
|
error string
|
||||||
results []Package
|
results []Package
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -45,7 +46,11 @@ fn (c Client) request(params map[string][]string) ?[]Package {
|
||||||
return error('error')
|
return error('error')
|
||||||
}
|
}
|
||||||
|
|
||||||
data := json.decode(SuccessResponse, res.body)?
|
data := json.decode(Response, res.body)?
|
||||||
|
|
||||||
|
if data.@type == 'error' {
|
||||||
|
return error('Server responded with an error: $data.error')
|
||||||
|
}
|
||||||
|
|
||||||
return data.results
|
return data.results
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue