diff --git a/lib/twilio-ruby/framework/rest/error.rb b/lib/twilio-ruby/framework/rest/error.rb index 05fb3769e..ad955bac3 100644 --- a/lib/twilio-ruby/framework/rest/error.rb +++ b/lib/twilio-ruby/framework/rest/error.rb @@ -35,5 +35,33 @@ def format_message(initial_message) class ObsoleteError < StandardError end + + class RestErrorV10 < TwilioError + attr_accessor :code, :message, :httpStatusCode, :params, :userError + + def initialize(response) + @code = response.code + @message = response.message + @httpStatusCode = response.httpStatusCode + @params = response.params + @userError = response.userError + end + + def to_s + message + end + + private + + def format_message(initial_message) + message_response = "[HTTP #{status_code}] #{code} : #{initial_message}" + message_response += "\n#{message}" if message + message_response += "\n#{httpStatusCode}" if httpStatusCode + message_response += "\n#{params}" if params + message_response += "\n#{userError}" if userError + message_response + "\n\n" + end + + end end end diff --git a/lib/twilio-ruby/framework/rest/version.rb b/lib/twilio-ruby/framework/rest/version.rb index 455eab5bd..9f2a41a39 100644 --- a/lib/twilio-ruby/framework/rest/version.rb +++ b/lib/twilio-ruby/framework/rest/version.rb @@ -48,7 +48,7 @@ def relative_uri(uri) def request(method, uri, params = {}, data = {}, headers = {}, auth = nil, timeout = nil) url = relative_uri(uri) - params = params.delete_if { |_k, v| v.nil? } + params.delete_if { |_k, v| v.nil? } data = data @domain.request(method, url, params, data, headers, auth, timeout) end @@ -57,8 +57,12 @@ def exception(response, header) Twilio::REST::RestError.new(header, response) end + def exception_v10(response) + Twilio::REST::RestErrorV10.new(response) + end + def fetch(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil) - response = request( + request( method, uri, params, @@ -68,16 +72,14 @@ def fetch(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: ni timeout ) - # Note that 3XX response codes are allowed for fetches. - if response.status_code < 200 || response.status_code >= 400 - raise exception(response, 'Unable to fetch record') - end - - response.body + # # Note that 3XX response codes are allowed for fetches. + # if response.status_code < 200 || response.status_code >= 400 + # raise exception(response, 'Unable to fetch record') + # end end def update(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil) - response = request( + request( method, uri, params, @@ -87,15 +89,13 @@ def update(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: n timeout ) - if response.status_code < 200 || response.status_code >= 300 - raise exception(response, 'Unable to update record') - end - - response.body + # if response.status_code < 200 || response.status_code >= 300 + # raise exception(response, 'Unable to update record') + # end end def delete(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil) - response = request( + request( method, uri, params, @@ -105,11 +105,9 @@ def delete(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: n timeout ) - if response.status_code < 200 || response.status_code >= 300 - raise exception(response, 'Unable to delete record') - end - - response.status_code == 204 + # if response.status_code < 200 || response.status_code >= 300 + # raise exception(response, 'Unable to delete record') + # end end def read_limits(limit = nil, page_size = nil) @@ -140,13 +138,15 @@ def stream(page, limit: nil, page_limit: nil) end def create(method, uri, params: {}, data: {}, headers: {}, auth: nil, timeout: nil) - response = request(method, uri, params, data, headers, auth, timeout) + request(method, uri, params, data, headers, auth, timeout) - if response.status_code < 200 || response.status_code >= 300 - raise exception(response, 'Unable to create record') - end + # if response.status_code < 200 || response.status_code >= 300 + # raise exception(response, 'Unable to create record') + # end + end - response.body + def delete_status_code(response) + response.status_code >= 200 && response.status_code < 400 end end end