Sha256: 42dc8d0cdef93c79e15f805c0b9acbd5ab9b23bedf437e9aefa627d16ba6c561

Contents?: true

Size: 1.84 KB

Versions: 1

Compression:

Stored size: 1.84 KB

Contents

require 'faraday'

class TranslationEngine::Connection

  NotFound = Class.new(Exception)

  def send_images(data)
    connection.post do |req|
      req.url '/api/v1/images'
      req.headers['Content-Type']  = 'application/json'
      req.headers['Authorization'] = api_token
      req.body = data.to_json
    end
  end

  def send_translations(data)
    connection.post do |req|
      req.url '/api/v1/translations'
      req.headers['Content-Type']  = 'application/json'
      req.headers['Authorization'] = api_token
      req.body = data.to_json
    end
  end

  def get_releases
    response = connection.get do |req|
      req.url '/api/v1/releases.json'
      req.headers['Authorization'] = api_token
    end

    JSON.parse(response.body).with_indifferent_access[:releases].map do |args|
      TranslationEngine::Release.new args
    end
  end

  def get_release(version)
    response = connection.get do |req|
      req.url "/api/v1/releases/#{version}.yaml"
      req.headers['Authorization'] = api_token
    end

    raise NotFound, "Release #{version} Not found" if response.status != 200

    response
  end

  def get_translations
    connection.get do |req|
      req.url '/api/v1/translations.yaml'
      req.headers['Authorization'] = api_token
    end
  end

  def get_translations_head
    connection.head do |req|
      req.url '/api/v1/translations.yaml'
      req.headers['Authorization'] = api_token
    end
  end

  private

  def connection
    @connection ||= Faraday.new(:url => TranslationEngine.api_host) do |faraday|
      faraday.use TranslationEngine::ConnectionExceptionMiddleware
      faraday.adapter Faraday.default_adapter
      faraday.options.timeout      = TranslationEngine.timeout
      faraday.options.open_timeout = TranslationEngine.timeout * 4
    end
  end

  def api_token
    "Token token=#{TranslationEngine.api_key}"
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
translation_engine-0.0.1 app/models/translation_engine/connection.rb