class SteamFi::API

Public Class Methods

logger() click to toggle source
# File lib/steam_fi/api.rb, line 27
def logger
  @@logger
end
logger=(logger) click to toggle source
# File lib/steam_fi/api.rb, line 31
def logger=(logger)
  @@logger = logger
end
send_sms(msisdn, message, params = {}) click to toggle source

Send SMS message

# File lib/steam_fi/api.rb, line 22
def send_sms(msisdn, message, params = {})
  params.merge! :msisdn => msisdn, :msg => message
  request @@config[:sms_url], params
end
setup(options) click to toggle source
# File lib/steam_fi/api.rb, line 17
def setup(options)
  @@config.merge!(options)
end

Protected Class Methods

handle_error(e) click to toggle source
# File lib/steam_fi/api.rb, line 70
def handle_error(e)
  logger.error "#{Time.now} ERROR\n#{e.message}" if logger
  raise SteamFi::SteamException.new(e.message)      
end
request(url, params = {}) click to toggle source

Send request

# File lib/steam_fi/api.rb, line 38
def request(url, params = {})
  # add username & password
  params.merge! :l => @@config[:username], :p => @@config[:password]
  
  logger.info "#{Time.now} REQUEST\n#{url}\n#{params.to_yaml}" if logger

  begin
    # build & send request
    uri = URI.parse(url)
    req = Net::HTTP::Post.new(uri.path)
    
    req.set_form_data(params)
    req.initialize_http_header({ 
      'Content-Type' => 'application/x-www-form-urlencoded; charset=UTF-8'
    })
    
    http          = Net::HTTP.new(uri.host, uri.port)
    http.use_ssl  = (uri.port == 443)
    res           = http.request(req) 
  rescue Exception => e
    handle_error e
  end
    
  case res
  when Net::HTTPSuccess
    logger.info "#{Time.now} RESPONSE\n#{res.body}" if logger
    res.body
  else
    handle_error SteamFi::SteamException.new(res.inspect)
  end
end