Sha256: 09dc86f3dee7b89c79b930b76dcd156df537e3ea9d22c8b8e98c4e5fb710c4ff

Contents?: true

Size: 1.4 KB

Versions: 1

Compression:

Stored size: 1.4 KB

Contents

require 'omniauth-oauth'
require 'multi_json'

module OmniAuth
  module Strategies
    class Youroom < OmniAuth::Strategies::OAuth
      option :name, 'youroom'
      option :client_options, {:site => 'https://www.youroom.in',
                               :authorize_path => '/oauth/authorize',
                               :request_token_path => '/oauth/request_token',
                               :access_token_path => '/oauth/access_token'}

      uid { raw_info['user']['id'] }

      info do
        {
          :id              => raw_info['user']['id'],
          :name            => raw_info['user']['email'],
          :email           => raw_info['user']['email'],
          :participations  => raw_info['user']['participations'],
          :last_request_at => raw_info['user']['last_request_at'],
          :created_at      => raw_info['user']['created_at'],
          :updated_at      => raw_info['user']['updated_at'],
          :groups          => groups_info
        }
      end

      extra do
        { :raw_info => raw_info }
      end

      def raw_info
        @raw_info ||= MultiJson.load(access_token.get('/verify_credentials.json').body)
      rescue ::Errno::ETIMEDOUT
        raise ::Timeout::Error
      end

      def groups_info
        @groups_info ||= MultiJson.load(access_token.get('/groups/my.json').body)
      rescue ::Errno::ETIMEDOUT
        raise ::Timeout::Error
      end

    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omniauth-youroom-0.0.3 lib/omniauth/strategies/youroom.rb