| 12345678910111213141516171819202122232425262728293031323334353637 |
- module Oauth
- class Base
- attr_reader :provider, :data, :access_token, :uid
- def initialize params
- @provider = self.class.name.split('::').last.downcase
- prepare_params params
- puts "PARAMS - #{@params}"
- @client = HTTPClient.new
- @access_token = params[:access_token].presence || get_access_token
- puts "ACCESS TOKEN IS - #{@access_token}"
- get_data if @access_token.present?
- end
- def get_access_token
- response = @client.post(self.class::ACCESS_TOKEN_URL, @params)
- puts "ACCESS TOKEN RESPONSE - #{response.body}"
- JSON.parse(response.body)["access_token"]
- end
- def prepare_params params
- @params = {
- code: params[:code],
- redirect_uri: params[:redirectUri],
- client_id: ENV["#{@provider.upcase}_KEY"],
- client_secret: ENV["#{@provider.upcase}_SECRET"],
- grant_type: 'authorization_code'
- }
- end
- def authorized?
- @access_token.present?
- end
- end
- end
|