Sha256: 191cc0b677cae915a1f910a6cdb8b53673c905fff39eeb51db614f2e3570c424

Contents?: true

Size: 1.27 KB

Versions: 7

Compression:

Stored size: 1.27 KB

Contents

require_dependency "plaid_rails/application_controller"

module PlaidRails
  class LinkController < ApplicationController

    def authenticate
      begin
        @exchange_token = Plaid.exchange_token(link_params[:public_token])

        @params = link_params.merge!(token: link_params[:public_token])
        
      rescue => e
        Rails.logger.error "Error: #{e}"
        Rails.logger.error e.backtrace.join("\n")
        render text: e.message, status: 500
      end
    end
    
    def update
      begin
        exchange_token = Plaid.exchange_token(link_params[:public_token])

        @accounts =PlaidRails::Account.where(owner_type: link_params[:owner_type],
        owner_id: link_params[:owner_id])
        @accounts.each do |account|
          account.update(access_token: exchange_token.access_token)
        end
        flash[:success]="You have successfully updated your account(s)"
      rescue => e
        Rails.logger.error "Error: #{e}"
        Rails.logger.error e.backtrace.join("\n")
        render text: e.message, status: 500
      end
    end
    private
    # Never trust parameters from the scary internet, only allow the white list through.
    def link_params
      params.permit(:access_token, :public_token, :type,:name,:owner_id,:owner_type)
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
plaid_rails-0.4.0 app/controllers/plaid_rails/link_controller.rb
plaid_rails-0.3.0 app/controllers/plaid_rails/link_controller.rb
plaid_rails-0.2.3 app/controllers/plaid_rails/link_controller.rb
plaid_rails-0.2.2 app/controllers/plaid_rails/link_controller.rb
plaid_rails-0.2.0 app/controllers/plaid_rails/link_controller.rb
plaid_rails-0.1.1 app/controllers/plaid_rails/link_controller.rb
plaid_rails-0.1.0 app/controllers/plaid_rails/link_controller.rb