Sha256: 2a9d67d217ab20243d998ea5de83a0a659ee1616db146c80a5ac6163382db5ca

Contents?: true

Size: 663 Bytes

Versions: 2

Compression:

Stored size: 663 Bytes

Contents

# frozen_string_literal: true

require 'hashie/mash'

module GQLi
  # Response object wrapper
  class Response
    attr_reader :data, :errors, :query

    def initialize(data, errors, query)
      @data = Hashie::Mash.new(data)
      @errors = parse_errors(errors)
      @query = query
    end

    private

    # Accepts Hash or Array of errors and converts them to Hashie::Mash instances.
    # Recursively calls #parse_errors with items if array.
    # Returns nil if nil is passed.
    def parse_errors(errors)
      return unless errors
      return errors.map { |e| parse_errors(e) } if errors.is_a?(Array)

      Hashie::Mash.new(errors)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
gqli-1.2.0 lib/gqli/response.rb
gqli-1.1.0 lib/gqli/response.rb