Method: PureCloud::ApiClient#deserialize
- Defined in:
- lib/purecloud/api_client.rb
#deserialize(response, return_type) ⇒ Object
Deserialize the response to the given return type.
122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 |
# File 'lib/purecloud/api_client.rb', line 122 def deserialize(response, return_type) body = response.body return nil if body.nil? || body.empty? # return response body directly for String return type return body if return_type == 'String' # handle file downloading - save response body into a tmp file and return the File instance return download_file(response) if return_type == 'File' # ensuring a default content type content_type = response.headers['Content-Type'] || 'application/json' fail "Content-Type is not supported: #{content_type}" unless json_mime?(content_type) begin data = JSON.parse("[#{body}]", :symbolize_names => true)[0] rescue JSON::ParserError => e if %w(String Date DateTime).include?(return_type) data = body else raise e end end convert_to_type data, return_type end |