class FBTether

Public Class Methods

friends(user) click to toggle source
# File lib/magis/auths/fb.rb, line 57
def self.friends(user)
  graph = Koala::Facebook::API.new(user["accessToken"])

  friends = Magis.db["friends"].find(userId: user["_id"]).first
  fb_friends = graph.get_connections("me", "friends")
  
  if friends
          friends_list = Magis.db["friends"].update({userId: user["_id"]}, {"$set" => {friends: fb_friends}})
              else
      Magis.db["friends"].insert({userId: user["_id"], friends: fb_friends})
  end
        
  Magis.db["friends"].find(userId: user["_id"]).first["friends"]
end
store(user_params) click to toggle source
# File lib/magis/auths/fb.rb, line 2
def self.store(user_params)
  user_raw = user_params["extra"]["raw_info"]
  user = Magis.db["users"].find(email: user_raw["email"]).first
  
  user_info = Hash.new
  
  if user_raw["email"]
    user_info[:email] = user_raw["email"]
  end
  
  if user_raw["first_name"]
    user_info[:firstName] = user_raw["first_name"]
  end
  
  if user_raw["last_name"]
    user_info[:lastName] = user_raw["last_name"]
  end
  
  if user_raw["gender"]
    user_info[:gender] = user_raw["gender"]
  end
  
  
  if user_params["info"]["image"]
    user_info[:image] = user_params["info"]["image"]
  end
  
  if user_raw["id"]
    user_info[:uid] = user_raw["id"]
  end
  
  if user_raw["locale"] 
    user_info[:locale] = user_raw["locale"]
  end
  
  if user_raw["timezone"]
      user_info[:timezone] = user_raw["timezone"]
  end
  
  if user_params["credentials"]["token"]
    user_info[:accessToken] = user_params["credentials"]["token"]
  end
  
  user_info[:provider] = :facebook
  
  if user
    Magis.db["users"].update({"_id" => user["_id"]}, {"$set" => user_info})
  else
    Magis.db["users"].insert(user_info)
      user = Magis.db["users"].find(email: user_raw["email"]).first
  end
  
  user
end