Sha256: 0f6f41ef097ac70d26820cfeb6cd0215556810def513af471a667c6fd315d6ae

Contents?: true

Size: 847 Bytes

Versions: 4

Compression:

Stored size: 847 Bytes

Contents

module PlaidRails
  class Account < ActiveRecord::Base
    belongs_to :owner, polymorphic: true, foreign_key: :owner_id
    
    before_destroy :delete_connect
    
    validates :plaid_id, presence: true
    validates :name, presence: true
    validates :access_token, presence: true
    validates :plaid_type, presence: true
    
    private
    
    # delete token from Plaid if there are no more accounts for this token
    def delete_connect
      token = self.access_token
      begin
        if PlaidRails::Account.where(access_token: token).size == 1
          user = Plaid::User.load(:connect, token)
          user.delete
        end
      rescue  => e
        message = "Unable to delete token #{token}"
        Rails.logger.error "#{message}: #{e.message}"
        Rails.logger.error e.backtrace.join("\n")
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
plaid_rails-0.8.0 app/models/plaid_rails/account.rb
plaid_rails-0.7.0 app/models/plaid_rails/account.rb
plaid_rails-0.6.0 app/models/plaid_rails/account.rb
plaid_rails-0.5.0 app/models/plaid_rails/account.rb