Sha256: 8e19cc4233e6bc489cb6bf1ac0725dbe01e941d4d1143eaab742f7bac11f5e0a

Contents?: true

Size: 807 Bytes

Versions: 2

Compression:

Stored size: 807 Bytes

Contents

require "hypernova/batch_renderer"
require "hypernova/parsed_response"
require "hypernova/plugin_helper"

class Hypernova::RequestService
  include Hypernova::PluginHelper

  def render_batch(jobs)
    return render_batch_blank(jobs) if jobs.empty?
    response_body = Hypernova::ParsedResponse.new(jobs).body
    response_body.each do |index_string, resp|
      on_error(build_error(resp["error"]), jobs[index_string]) if resp["error"]
    end
    build_renderer(jobs).render(response_body)
  end

  def render_batch_blank(jobs)
    build_renderer(jobs).render_blank
  end

  private

  def build_error(error)
    {
      'name' => error['name'],
      'message' => error['message'],
      'stack' => error['stack'],
    }
  end

  def build_renderer(jobs)
    Hypernova::BatchRenderer.new(jobs)
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
hypernova-2.0.0 lib/hypernova/request_service.rb
hypernova-1.4.0 lib/hypernova/request_service.rb