class ApiUserAuth::Providers::Instagram

Instagram

Constants

API_PATH

Public Class Methods

get_user(token) click to toggle source
# File lib/api_user_auth/providers/instagram.rb, line 34
def self.get_user(token)
  inst = Instagram.new(token)
  inst.get_user_data
end
new(token) click to toggle source
# File lib/api_user_auth/providers/instagram.rb, line 7
def initialize(token)
  @token = token
  @data = {}
end

Public Instance Methods

api_info_url() click to toggle source
# File lib/api_user_auth/providers/instagram.rb, line 12
def api_info_url
  params = {
    access_token: @token
  }
  URI("#{API_PATH}?#{params.to_query}")
end
get_user_data() click to toggle source
# File lib/api_user_auth/providers/instagram.rb, line 19
def get_user_data
  api_get_request
  user_data
end
user_data() click to toggle source
# File lib/api_user_auth/providers/instagram.rb, line 24
def user_data
  {
    id: @data[:id], name: @data[:full_name],
    email: "#{@data[:username]}@instagram.com",
    provider: 'instagram',
    img_url: @data[:profile_picture],
    info: {}
  }
end

Private Instance Methods

api_get_request() click to toggle source
# File lib/api_user_auth/providers/instagram.rb, line 41
def api_get_request
  response = ::Net::HTTP.get_response(api_info_url)
  case response.code.to_i
  when 200
    @data = JSON.parse(response.body, symbolize_names: true)[:data]
  when 400
    raise ApiUserAuth::Exceptions::InvalidToken, 'Invalid Token'
  else
    raise ApiUserAuth::Exceptions::ProviderError, 'Provider Error'
  end
end