@@ -52,13 +52,17 @@ def conn
5252 def handle_response response
5353 content_type = response . headers [ :content_type ]
5454
55- if content_type . start_with? 'application/json'
56- body = JSON . parse ( response . body ) . with_indifferent_access
55+ if content_type
56+ if content_type . start_with? 'application/json'
57+ body = JSON . parse ( response . body ) . with_indifferent_access
58+ else
59+ extension = MimeTypeHelper . extension_for_mimetype content_type
60+ filename = File . join Dir . tmpdir , tmpname ( extension )
61+ File . open ( filename , 'wb' ) { |file | file . write response . body }
62+ body = { 'success' => response . success? , 'data' => File . open ( filename , 'rb' ) }
63+ end
5764 else
58- extension = MimeTypeHelper . extension_for_mimetype content_type
59- filename = File . join Dir . tmpdir , tmpname ( extension )
60- File . open ( filename , 'wb' ) { |file | file . write response . body }
61- body = { 'success' => response . success? , 'data' => File . open ( filename , 'rb' ) }
65+ body = { }
6266 end
6367
6468 if response . success?
@@ -85,6 +89,8 @@ def handle_response response
8589 raise Error ::InvalidRequestError , "#{ status } : #{ message } "
8690 when 429
8791 raise Error ::RateLimitExceededError , "#{ status } : #{ message } "
92+ when 503
93+ raise Error ::ServiceUnavailableError , "#{ status } : #{ message } "
8894 else
8995 raise Error ::GeneralError , "#{ status } : #{ message } "
9096 end
0 commit comments