Sha256: be883877a9402a3ceed002deaf8ecbab1484e4b4231e0d99d1fb1d69f8f0c00d

Contents?: true

Size: 1.01 KB

Versions: 4

Compression:

Stored size: 1.01 KB

Contents

# frozen_string_literal: true

require 'oauth2'
require 'omniauth/strategies/oauth2'
require 'uri'

module OmniAuth
  module Strategies
    # Main class for Seznam.cz strategy.
    class WebAreal < OmniAuth::Strategies::OAuth2
      DEFAULT_SCOPE = 'USER_INFO'
      USER_INFO_URL = 'https://marketplace.webareal.cz/api/user/about'

      option :name, 'web_areal'
      option :authorize_options, %i[scope]
      option :scope, DEFAULT_SCOPE

      option :client_options,
             site: 'https://marketplace.webareal.cz',
             authorize_url: '/user-auth',
             token_url: '/api/token',
             auth_scheme: :request_body

      uid { raw_info['user'] }

      info do
        {
          email: raw_info['user'],
          stores: raw_info['stores']
        }
      end

      extra do
        { 'raw_info' => raw_info }
      end

      def callback_url
        full_host + callback_path
      end

      def raw_info
        @raw_info ||= access_token.get(USER_INFO_URL).parsed
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
omniauth-cz-shop-platforms-1.2.0 lib/omniauth/strategies/web_areal.rb
omniauth-cz-shop-platforms-1.1.2 lib/omniauth/strategies/web_areal.rb
omniauth-cz-shop-platforms-1.1.1 lib/omniauth/strategies/web_areal.rb
omniauth-cz-shop-platforms-1.1.0 lib/omniauth/strategies/web_areal.rb