class Handiv::Connection

Constants

USER_AGENT

Attributes

client[R]
connection[R]

Public Class Methods

new(client) click to toggle source
# File lib/handiv/connection.rb, line 11
def initialize(client)
  @client = client
  @connection = set_connection
end

Public Instance Methods

send_data(path, data = {}) click to toggle source
# File lib/handiv/connection.rb, line 16
def send_data(path, data = {})
  config.verify!

  response = post_data(path, data)
  response.status
rescue => e
  client.logger.error "Failed to send a message (#{e.class} - #{e.message})"
  500 # Return status
end

Private Instance Methods

config() click to toggle source
# File lib/handiv/connection.rb, line 59
def config
  client.config
end
config_general_options(conn) click to toggle source
# File lib/handiv/connection.rb, line 52
def config_general_options(conn)
  conn.headers[:user_agent] = USER_AGENT
  conn.options[:proxy] = config.proxy if config.proxy
  conn.options[:timeout] = config.timeout if config.timeout
  conn.options[:open_timeout] = config.open_timeout if config.open_timeout
end
ping_url() click to toggle source
# File lib/handiv/connection.rb, line 37
def ping_url
  "#{config.uri}/#{config.organization_id}/#{config.app_id}"
end
post_data(path, data) click to toggle source
# File lib/handiv/connection.rb, line 28
def post_data(path, data)
  connection.post do |req|
    req.url(path)
    req.headers['Content-Type'] = 'application/json'
    req.headers['Authorization'] = "Token token=#{config.secret_token}"
    req.body = data.to_json
  end
end
set_connection() click to toggle source
# File lib/handiv/connection.rb, line 41
def set_connection
  Faraday.new(url: ping_url) do |conn|
    config_general_options(conn)
    conn.response :follow_redirects
    conn.request :url_encoded # for POST/PUT params
    conn.request :retry

    conn.adapter Faraday.default_adapter
  end
end