Sha256: 691caa82c038205f1eba20145b9e2f43e087d357b15ea944e7b95cd1b7267c70

Contents?: true

Size: 1.34 KB

Versions: 21

Compression:

Stored size: 1.34 KB

Contents

module SparkApi
  # API Response interface
  module Response
    ATTRIBUTES = [:code, :message, :results, :success, :pagination, :details, :d, :errors, :sparkql_errors, :request_id]
    attr_accessor *ATTRIBUTES
    def success?
      @success
    end
  end
  
  # Nice and handy class wrapper for the api response hash
  class ApiResponse < ::Array
    MAGIC_D = 'D'
    MESSAGE = 'Message'
    CODE = 'Code'
    RESULTS = 'Results'
    SUCCESS = 'Success'
    PAGINATION = 'Pagination'
    DETAILS = 'Details'
    ERRORS = 'Errors'
    SPARKQL_ERRORS = 'SparkQLErrors'
    include SparkApi::Response
    def initialize d, request_id=nil
      begin
        self.d = d[MAGIC_D]
        if self.d.nil? || self.d.empty?
          raise InvalidResponse, "The server response could not be understood"
        end
        self.message    = self.d[MESSAGE]
        self.code       = self.d[CODE]
        self.results    = Array(self.d[RESULTS])
        self.success    = self.d[SUCCESS]
        self.pagination = self.d[PAGINATION]
        self.details    = self.d[DETAILS] || []
        self.errors     = self.d[ERRORS]
        self.sparkql_errors = self.d[SPARKQL_ERRORS]
        self.request_id = request_id
        super(results)
      rescue Exception => e
        SparkApi.logger.error "Unable to understand the response! #{d}"
        raise
      end
    end
  end
end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
spark_api-2.0.0 lib/spark_api/response.rb
spark_api-1.6.3 lib/spark_api/response.rb
spark_api-1.6.2 lib/spark_api/response.rb
spark_api-1.6.1 lib/spark_api/response.rb
spark_api-1.5.7 lib/spark_api/response.rb
spark_api-1.6.0 lib/spark_api/response.rb
spark_api-1.5.6 lib/spark_api/response.rb
spark_api-1.5.5 lib/spark_api/response.rb
spark_api-1.5.4 lib/spark_api/response.rb
spark_api-1.5.3 lib/spark_api/response.rb
spark_api-1.5.2 lib/spark_api/response.rb
spark_api-1.5.1 lib/spark_api/response.rb
spark_api-1.5.0 lib/spark_api/response.rb
spark_api-1.4.34 lib/spark_api/response.rb
spark_api-1.4.32 lib/spark_api/response.rb
spark_api-1.4.31 lib/spark_api/response.rb
spark_api-1.4.29 lib/spark_api/response.rb
spark_api-1.4.28 lib/spark_api/response.rb
spark_api-1.4.27 lib/spark_api/response.rb
spark_api-1.4.26 lib/spark_api/response.rb