module OmniAuth::Whichsignupapi::ApiMethods

Public Class Methods

handles(url, secret, token_secret, login_id) click to toggle source
# File lib/omniauth/whichsignupapi/api_methods.rb, line 4
def self.handles(url, secret, token_secret, login_id)
  make_call(url, '/api/login/handles',
    secret, token_secret,
    login: login_id)
end
login(url, secret, token_secret, login_id, password, always_get_details = false) click to toggle source
# File lib/omniauth/whichsignupapi/api_methods.rb, line 10
def self.login(url, secret, token_secret, login_id, password, always_get_details = false)
  make_call(url,'/api/login',
    secret, token_secret,
    login: login_id,
    password: password,
    requested: 'screen_name,user_name,customer_id,b2b_customer,marketing_permission',
    reply: always_get_details ? 'detailed' : 'standard ')
end

Private Class Methods

expand_and_clean_results(token_secret, results) click to toggle source
# File lib/omniauth/whichsignupapi/api_methods.rb, line 42
def self.expand_and_clean_results(token_secret, results)
  if results['token']
    token = TokenTools.new(token_secret).decode_token(results['token'])
    results.merge!(YAML::load(token[:token_data])) if token[:token_data]
  end
  results.each_with_object({}) { |i,o| o[i[0].to_sym] = i[1] }
end
make_call(url, path, secret, token_secret, params) click to toggle source
# File lib/omniauth/whichsignupapi/api_methods.rb, line 21
def self.make_call(url, path, secret, token_secret, params)
  token = TokenTools.new(token_secret).generate_token(secret)

  uri = URI.parse(url)

  conn = Faraday.new(:url => url) 

  conn.basic_auth(uri.user, uri.password) unless uri.user.nil?

  response = conn.get do |req|
    req.url path
    req.params.merge!(params)
    req.params['token'] = token
  end

  fail "Connection Problem: [#{response.status}]" unless response.status == 200  

  results = JSON.parse response.body
  expand_and_clean_results(token_secret, results)
end