class Komtet::Transport

Public Class Methods

new(api_url, shop_id, signature_key, queue_id=nil) click to toggle source
# File lib/komtet/transport.rb, line 25
def initialize(api_url, shop_id, signature_key, queue_id=nil)
  @api_url = api_url
  @authorization = shop_id
  @signature_key = signature_key
  @queue_id = queue_id
end

Public Instance Methods

post_task(content, queue_id=@queue_id) click to toggle source
# File lib/komtet/transport.rb, line 43
def post_task(content, queue_id=@queue_id)
  raise ArgumentError, "queue_id is not integer" unless queue_id.is_a?(Integer)
  res = transport.post("queues/#{queue_id}/task")
  raise "non success: #{res.code}" unless res.success?
  res.body
end
task_result(task_id) click to toggle source
# File lib/komtet/transport.rb, line 50
def task_result(task_id)
  res = transport.get("tasks/#{task_id}")
  raise "non success: #{res.code}" unless res.success?
  res.body
end
transport() click to toggle source
# File lib/komtet/transport.rb, line 32
def transport
  @transport ||= Faraday.new(url: @api_url) do |conn|
    conn.headers['User-Agent'] = "KomtetRuby/#{Komtet::VERSION}"
    conn.headers['Accept'] = "application/json"
    conn.request(:json)
    conn.use(RequestSignatureMiddleware, @authorization, @signature_key)
    conn.response :json, content_type: /\bjson$/
    conn.adapter(Faraday.default_adapter)
  end
end