lib/omniauth/strategies/mailchimp.rb in omniauth-mailchimp-1.0.1 vs lib/omniauth/strategies/mailchimp.rb in omniauth-mailchimp-1.0.2

- old
+ new

@@ -10,22 +10,39 @@ option :client_options, { :site => "https://login.mailchimp.com", :authorize_url => '/oauth2/authorize', :token_url => '/oauth2/token' } + + uid { + raw_info["user_id"] + } + + info do + { + :first_name => raw_info["contact"]["fname"], + :last_name => raw_info["contact"]["lname"], + :email => raw_info["contact"]["email"] + } + end - def auth_hash - data = user_data - OmniAuth::Utils.deep_merge( - super, { - 'extra'=> { - 'user_hash' => data - } - } - ) + extra do + { + :metadata => user_data, + :raw_info => raw_info + } end + def raw_info + @raw_info ||= begin + data = user_data + endpoint = data["api_endpoint"] + apikey = "#{@access_token.token}-#{data['dc']}" + @access_token.get("#{endpoint}/1.3/?method=getAccountDetails&apikey=#{apikey}").parsed + end + end + def user_data @data ||= MultiJson.decode(@access_token.get("https://login.mailchimp.com/oauth2/metadata").body) rescue ::OAuth2::Error => e if e.response.status == 302 @data ||= MultiJson.decode(@access_token.get(e.response.headers['location'])) @@ -33,6 +50,6 @@ raise e end end end end -end \ No newline at end of file +end