class Colossus::HTTPWriterClient

Attributes

time_out[R]
url[R]
writer_token[R]

Public Class Methods

new(url, writer_token = Colossus.config.writer_token, time_out = 2) click to toggle source
# File lib/colossus/http_writer_client.rb, line 5
def initialize(url,
               writer_token = Colossus.config.writer_token,
               time_out     = 2)
  @url          = url
  @writer_token = writer_token
  @time_out     = time_out
end

Public Instance Methods

presence(optional_user_ids = nil) click to toggle source
# File lib/colossus/http_writer_client.rb, line 13
def presence(optional_user_ids = nil)
  user_ids = Array(optional_user_ids) if optional_user_ids
  connection.post('/presence_request') do |req|
    req.body = { user_ids: user_ids, writer_token: writer_token }
  end.body
end
push(user_ids, message) click to toggle source
# File lib/colossus/http_writer_client.rb, line 20
def push(user_ids, message)
  user_ids = Array(user_ids)
  connection.post('/message') do |req|
    req.body = { user_ids: user_ids, message: message, writer_token: writer_token}
  end.body
end

Private Instance Methods

base_url() click to toggle source
# File lib/colossus/http_writer_client.rb, line 42
def base_url
  @base_url ||= URI.parse(url).tap{ |u| u.path=('/') }
end
connection() click to toggle source
# File lib/colossus/http_writer_client.rb, line 29
def connection
  Faraday.new(url, connection_options) do |conf|
    conf.request  :json
    conf.response :json
    conf.response :raise_error
    conf.adapter  Faraday.default_adapter
  end
end
connection_options() click to toggle source
# File lib/colossus/http_writer_client.rb, line 38
def connection_options
  {request: {timeout: 2, open_timeout: 2}}
end