Sha256: 811ada1734b171bc90ffdf0c0cc1a912de7c4bf8631218ed4912adcd473bbe29

Contents?: true

Size: 1.84 KB

Versions: 33

Compression:

Stored size: 1.84 KB

Contents

module Bankserv
  
  class AccountHolderVerification < ActiveRecord::Base
    self.inheritance_column = :_type_disabled
    serialize :response
    
    belongs_to :bank_account, :foreign_key => 'bankserv_bank_account_id'
    belongs_to :request, :foreign_key => 'bankserv_request_id'
    
    scope :unprocessed, where(status: "new")
    scope :internal, where(internal: true)
    scope :external, where(internal: false)
    
    def self.service
      Bankserv::AHVService.where(active: true).last
    end
    
    def self.for_reference(reference)
      self.where(:user_ref => reference)
    end
    
    def self.build!(options)
      bank_account = BankAccount.new(options.delete(:bank_account))
      is_internal = bank_account.branch_code == self.service.config[:internal_branch_code]
      ahv = new(options)
      ahv.bank_account = bank_account
      ahv.internal = is_internal
      ahv.save!
    end
    
    def internal?
      internal == true
    end
    
    def external?
      !internal?
    end
    
    def new?
      status == "new"
    end
    
    def pending?
      status == "pending"
    end
    
    def error?
      status == "error"
    end
    
    def completed?
      status == "completed"
    end

    def pending!
      self.status = "pending"
      save!
    end
    
    def process_response(data)
      file_name = "#{Bankserv::CONFIG_DIR}/ahv.yml"
      return_code_mapping = YAML.load(File.open(file_name))['return_codes']
      
      hash = {
        account_number: return_code_mapping[data[:return_code_1]].to_sym,
        id_number: return_code_mapping[data[:return_code_2]].to_sym,
        initials: return_code_mapping[data[:return_code_3]].to_sym,
        surname: return_code_mapping[data[:return_code_4]].to_sym
      }
      
      self.response = hash
      self.status = "completed"
      self.save!
    end
    
  end
  
end

Version data entries

33 entries across 33 versions & 1 rubygems

Version Path
bankserv-0.8.6 lib/bankserv/account_holder_verification.rb
bankserv-0.8.5 lib/bankserv/account_holder_verification.rb
bankserv-0.8.4 lib/bankserv/account_holder_verification.rb
bankserv-0.8.2 lib/bankserv/account_holder_verification.rb
bankserv-0.8.1 lib/bankserv/account_holder_verification.rb
bankserv-0.8.0 lib/bankserv/account_holder_verification.rb
bankserv-0.7.9 lib/bankserv/account_holder_verification.rb
bankserv-0.7.8 lib/bankserv/account_holder_verification.rb
bankserv-0.7.7 lib/bankserv/account_holder_verification.rb
bankserv-0.7.6 lib/bankserv/account_holder_verification.rb
bankserv-0.7.5 lib/bankserv/account_holder_verification.rb
bankserv-0.7.4 lib/bankserv/account_holder_verification.rb
bankserv-0.7.3 lib/bankserv/account_holder_verification.rb
bankserv-0.7.2 lib/bankserv/account_holder_verification.rb
bankserv-0.7.1 lib/bankserv/account_holder_verification.rb
bankserv-0.7.0 lib/bankserv/account_holder_verification.rb
bankserv-0.6.9 lib/bankserv/account_holder_verification.rb
bankserv-0.6.8 lib/bankserv/account_holder_verification.rb
bankserv-0.6.7 lib/bankserv/account_holder_verification.rb
bankserv-0.6.6 lib/bankserv/account_holder_verification.rb