lib/cts/mpx/driver/response.rb in cts-mpx-1.0.3 vs lib/cts/mpx/driver/response.rb in cts-mpx-1.1.0

- old
+ new

@@ -1,69 +1,57 @@ module Cts module Mpx module Driver - # # Class to contain a response from the services, has a few helper methods to make reading the data easier. - # + # @!attribute original + # @return [Excon::Response] copy of the original excon response. class Response include Creatable - - # @!attribute original - # @return [Excon::Response] copy of the original excon response. attribute name: 'original', kind_of: Excon::Response - # # Hash output of the data returned from the services. - # # @return [Hash] Hash including keys specific to the service and type of service. - # def data return @data if @data raise 'response does not appear to be healthy' unless healthy? + # TODO: make the driver.load file become load string. begin - @data = Oj.load(original.body) + @data = Oj.compat_load(original.body) rescue Oj::ParseError => e raise "could not parse data: #{e}" end + + raise ServiceError, "title: #{@data['title']} description: #{@data['description']} cid: (#{@data['correlationId']})" if @data['isException'] + @data end - # # Is the response healthy? did it have a status code outside 2xx or 3xx. - # # @return [TrueFalse] false if status <= 199 or => 400, otherwise true. - # def healthy? return false if status <= 199 || status >= 400 + true end - # # Does this response contain a service exception - # # @return [TrueFalse] true if it does, false if it does not. - # def service_exception? - data['isException'] == true + original.body.include? '"isException":true,' end - # # a page of data, processes the response.data for any entries. - # # @return [Cts::Mpx::Driver::Page] a page of data. - # def page raise 'response does not appear to be healthy' unless healthy? + Cts::Mpx::Driver::Page.create entries: data['entries'], xmlns: data['$xmlns'] end - # # Status code of the response - # # @return [Fixnum] http status code - # def status original.status || nil end end end