Sha256: 664f96610a01f4e74357fedaafc64a7cd224edb18e490cadaa5525e0c72e41cb

Contents?: true

Size: 771 Bytes

Versions: 1

Compression:

Stored size: 771 Bytes

Contents

# frozen_string_literal: true

require 'omniauth-oauth2'

module OmniAuth
  module Strategies
    # OmniAuth strategy for Calendly
    class Calendly < OmniAuth::Strategies::OAuth2
      option :name, 'calendly'
      option :client_options, :site => 'https://auth.calendly.com'

      uid { raw_info['id'] }
      extra { {:raw_info => raw_info} }

    private

      def raw_info
        return @raw_info if defined?(@raw_info)

        endpoint = 'https://api.calendly.com/users/me'
        @raw_info = access_token.get(endpoint).parsed
      rescue ::OAuth2::Error => e
        log(:error, "#{e.class} occured. message:#{e.message}")
        @raw_info = {}
      end

      def callback_url
        full_host + script_name + callback_path
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
omniauth-calendly-0.0.1.alpha lib/omniauth/strategies/calendly.rb