Skip to content

Instantly share code, notes, and snippets.

@kmayer
Last active August 29, 2015 14:07
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save kmayer/f9e808488229e0576333 to your computer and use it in GitHub Desktop.
Save kmayer/f9e808488229e0576333 to your computer and use it in GitHub Desktop.
class BankAccount < ActiveRecord::Base
# :identifier is a column in "bank_accounts"
delegate :name, to: :balanced_api
private
def balanced_api
@balanced_api ||= begin
Balanced::BankAccount.fetch(identifier)
rescue Balanced::NotFound, Faraday::ConnectionFailed
NullObject.new([:name, :bank_name, :account_number, :bank_account_verification])
end
end
end
ba = BankAccount.new("/bank_accounts/BA4SxkOT8OEF6w9cqNQseadF")
ba.name # => "boom"
class V1::BankAccountsController < V1::BaseController
def create
bank_account = current_user.build_bank_account(bank_account_params)
if bank_account.save
render json: { bank_account: V1::BankAccountPresenter.new(bank_account) }, status: :created
else
render json: bank_account.errors, status: :bad_request
end
end
private
def bank_account_params
params.require(:bank_account).permit(:identifier)
end
end
@kschults
Copy link

Here's the stack trace:

[
    [  0] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/balanced-1.1.1/lib/balanced/response/balanced_exception_middleware.rb:41:in `on_complete'",
    [  1] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/faraday-0.9.0/lib/faraday/response.rb:9:in `block in call'",
    [  2] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/faraday-0.9.0/lib/faraday/response.rb:57:in `on_complete'",
    [  3] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/faraday-0.9.0/lib/faraday/response.rb:8:in `call'",
    [  4] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/faraday-0.9.0/lib/faraday/response.rb:8:in `call'",
    [  5] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/faraday-0.9.0/lib/faraday/response/logger.rb:20:in `call'",
    [  6] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/faraday_middleware-0.9.1/lib/faraday_middleware/request/encode_json.rb:23:in `call'",
    [  7] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/faraday-0.9.0/lib/faraday/rack_builder.rb:139:in `build_response'",
    [  8] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/faraday-0.9.0/lib/faraday/connection.rb:377:in `run_request'",
    [  9] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/faraday-0.9.0/lib/faraday/connection.rb:140:in `get'",
    [ 10] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/balanced-1.1.1/lib/balanced/client.rb:89:in `method_missing'",
    [ 11] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/balanced-1.1.1/lib/balanced.rb:61:in `get'",
    [ 12] "/Users/kschults/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/gems/balanced-1.1.1/lib/balanced/resources/resource.rb:274:in `fetch'",
    [ 13] "/Users/kschults/GymPact/web/gym-pact-health/app/models/bank_account.rb:54:in `balanced_api'",

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment