diff --git a/client.v b/client.v index 65e22eb..4d69edc 100644 --- a/client.v +++ b/client.v @@ -24,9 +24,10 @@ pub fn new_with_url(url string) &Client { } } -struct SuccessResponse { - result_count int [json: resultCount] - results []Package +struct Response { + @type string [json: 'type'] + error string + results []Package } fn (c Client) request(params map[string][]string) ?[]Package { @@ -45,7 +46,11 @@ fn (c Client) request(params map[string][]string) ?[]Package { 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 }