From dd4d78396f9ddc1dcf6876b41edf15c62afee83b Mon Sep 17 00:00:00 2001 From: Joel Van Horn Date: Fri, 16 Oct 2015 19:47:36 -0400 Subject: [PATCH] Add `id` and return additional data Author and version bump Expose more data with new `/user/status` endpoint Version bump --- lib/omniauth-podio/version.rb | 2 +- lib/omniauth/strategies/podio.rb | 31 +++++++++++++++++++++++-------- omniauth-podio.gemspec | 4 ++-- 3 files changed, 26 insertions(+), 11 deletions(-) diff --git a/lib/omniauth-podio/version.rb b/lib/omniauth-podio/version.rb index 89ac528..ff01c3e 100644 --- a/lib/omniauth-podio/version.rb +++ b/lib/omniauth-podio/version.rb @@ -1,5 +1,5 @@ module Omniauth module Podio - VERSION = "0.0.1" + VERSION = "0.1.0" end end diff --git a/lib/omniauth/strategies/podio.rb b/lib/omniauth/strategies/podio.rb index 3a338d6..1efaee7 100644 --- a/lib/omniauth/strategies/podio.rb +++ b/lib/omniauth/strategies/podio.rb @@ -4,29 +4,44 @@ module OmniAuth module Strategies class Podio < OmniAuth::Strategies::OAuth2 option :client_options, { - :site => 'https://api.podio.com/', - :authorize_url => 'https://podio.com/oauth/authorize', - :token_url => "https://podio.com/oauth/token" + site: 'https://api.podio.com/', + authorize_url: 'https://podio.com/oauth/authorize', + token_url: 'https://podio.com/oauth/token' } def request_phase super end + + uid do + raw_info["user"]["user_id"] + end info do + profile_info = raw_info["profile"] + user_info = raw_info["user"] + email = user_info["mail"] + verified = user_info["mails"].any?{|mail| mail["mail"] == email && mail["verified"] == true} + { - :email => raw_info["mail"], - :user_id => raw_info["user_id"] - + email: email, + verified: verified, + name: profile_info["name"], + user_id: profile_info["user_id"].to_s, + image: profile_info["image"] && profile_info["image"]["link"], + location: profile_info["location"] && profile_info["location"][0], + status: user_info["status"], + time_zone: user_info["timezone"], + locale: user_info["locale"] } end extra do - {:raw_info => raw_info} + {raw_info: raw_info} end def raw_info - @raw_info ||= MultiJson.decode(access_token.get('/user').body) + @raw_info ||= MultiJson.decode(access_token.get('/user/status').body) end end end diff --git a/omniauth-podio.gemspec b/omniauth-podio.gemspec index e645a2d..af59877 100644 --- a/omniauth-podio.gemspec +++ b/omniauth-podio.gemspec @@ -3,8 +3,8 @@ $:.push File.expand_path("../lib", __FILE__) require "omniauth-podio/version" Gem::Specification.new do |gem| - gem.authors = ["Lucas Allan"] - gem.email = ["lucas.allan@gmail.com"] + gem.authors = ["Lucas Allan", "Joel Van Horn"] + gem.email = ["lucas.allan@gmail.com", "joel@joelvanhorn.com"] gem.description = %q{OmniAuth strategy for Podio.} gem.summary = %q{OmniAuth strategy for Podio.} gem.homepage = "https://github.com/lucasallan/omniauth-podio"