Sha256: c8f46a3be40cedc57609ffde8ff82a41053300a3be5c499f1a8347ee7a1c0e16

Contents?: true

Size: 1.16 KB

Versions: 11

Compression:

Stored size: 1.16 KB

Contents

class Schwab
  include HTTParty
  debug_output $stdout
end

class Iro::ApiController < ActionController::Base
  layout false

  before_action :decode_jwt, except: [ :oauth2_redirect ]

  def oauth2_redirect
    out = Schwab.post( "https://api.schwabapi.com/v1/oauth/token", {
      headers: {
        "Content-Type": "application/x-www-form-urlencoded",
      },
      basic_auth: { username: SCHWAB_DATA[:key], password: SCHWAB_DATA[:secret] },
      body: {
        grant_type: 'authorization_code',
        code: params[:code].sub('%40', '@'),
        redirect_uri: SCHWAB_DATA[:redirect_url],
      },
    })
    out = out.parsed_response

    attrs = {
      schwab_access_token:  out['access_token'],
      schwab_refresh_token: out['refresh_token'],
      schwab_id_token:      out['id_token'],
    }
    # puts! attrs, 'attrs'

    profile = Wco::Profile.find_by email: 'piousbox@gmail.com'
    profile.update(attrs)
    profile.save!

    render json: { status: :ok }
  end

  ##
  ## private
  ##
  private

  def decode_jwt
    out = JWT.decode params[:jwt_token], nil, false
    email = out[0]['email']
    user = User.find_by({ email: email })
    sign_in user
  end

end

Version data entries

11 entries across 11 versions & 1 rubygems

Version Path
iron_warbler-2.0.7.39 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.38 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.37 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.36 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.35 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.34 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.33 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.32 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.31 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.30 app/controllers/iro/api_controller.rb
iron_warbler-2.0.7.29 app/controllers/iro/api_controller.rb