Bez popisu

base.rb 1008B

12345678910111213141516171819202122232425262728293031323334353637
  1. module Oauth
  2. class Base
  3. attr_reader :provider, :data, :access_token, :uid
  4. def initialize params
  5. @provider = self.class.name.split('::').last.downcase
  6. prepare_params params
  7. puts "PARAMS - #{@params}"
  8. @client = HTTPClient.new
  9. @access_token = params[:access_token].presence || get_access_token
  10. puts "ACCESS TOKEN IS - #{@access_token}"
  11. get_data if @access_token.present?
  12. end
  13. def get_access_token
  14. response = @client.post(self.class::ACCESS_TOKEN_URL, @params)
  15. puts "ACCESS TOKEN RESPONSE - #{response.body}"
  16. JSON.parse(response.body)["access_token"]
  17. end
  18. def prepare_params params
  19. @params = {
  20. code: params[:code],
  21. redirect_uri: params[:redirectUri],
  22. client_id: ENV["#{@provider.upcase}_KEY"],
  23. client_secret: ENV["#{@provider.upcase}_SECRET"],
  24. grant_type: 'authorization_code'
  25. }
  26. end
  27. def authorized?
  28. @access_token.present?
  29. end
  30. end
  31. end