Skip to content

Commit 3138da0

Browse files
authored
Merge pull request #298 from appwrite/fix-ruby-responses
Fix Ruby handling non-JSON responses
2 parents b56fca8 + 1d760a0 commit 3138da0

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

templates/ruby/lib/container/client.rb.twig

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -93,18 +93,26 @@ module {{spec.title | caseUcfirst}}
9393

9494
return fetch(method, uri, headers, {}, limit - 1)
9595
end
96-
97-
begin
98-
res = JSON.parse(response.body);
99-
rescue JSON::ParserError => e
100-
raise {{spec.title | caseUcfirst}}::Exception.new(response.body, response.code, nil)
96+
97+
if response.content_type == 'application/json'
98+
begin
99+
json = JSON.parse(response.body)
100+
101+
if response.class == Net::HTTPClientError || response.class == Net::HTTPServerError
102+
raise {{spec.title | caseUcfirst}}::Exception.new(json['message'], json['status'], response)
103+
end
104+
rescue JSON::ParserError => e
105+
raise {{spec.title | caseUcfirst}}::Exception.new(e.message, response.code, response)
106+
end
107+
108+
return json
101109
end
102110

103-
if(response.code.to_i >= 400)
104-
raise {{spec.title | caseUcfirst}}::Exception.new(res['message'], res['status'], res)
111+
if response.class == Net::HTTPClientError || response.class == Net::HTTPServerError
112+
raise {{spec.title | caseUcfirst}}::Exception.new(response.body, response.code, response)
105113
end
106114

107-
return res;
115+
return response.body if response.body_permitted?
108116
end
109117

110118
def encodeFormData(value, key=nil)

0 commit comments

Comments
 (0)