Sha256: db3a6dc922eb3b541ba13bd69208b5b474d506a82e10844b22a0ba6ac95621c3

Contents?: true

Size: 1.85 KB

Versions: 4

Compression:

Stored size: 1.85 KB

Contents

module FDIC
  module BankFind
    class Client
      include HTTParty
      base_uri 'https://odata.fdic.gov/v1/financial-institution/'
      format :json

      #logger ::Logger.new 'httparty.log', :debug, :curl
      #debug_output

      def find_bank(bank_name)
        self.class.get('/Bank',
                       query:
                       { '$inlinecount' => 'all',
                         '$format' => 'json',
                         '$filter' => "(substringof('#{escape_single_quotes(bank_name.upcase)}',name))"})
      end

      def find_institution(certificate_number)
        self.class.get('/Institution',
                       query:
                       { '$inlinecount' => 'all',
                         '$format' => 'json',
                         '$filter' => "certNumber eq #{certificate_number}"})
      end

      def find_branches(certificate_number)
        self.class.get('/Branch',
                       query:
                       { '$inlinecount' => 'allpages',
                         '$format' => 'json',
                         '$filter' => "certNumber eq #{certificate_number}"})
      end

      def find_history_events(bank_name, certificate_number)
        filter = "legalName eq '#{escape_single_quotes(bank_name.upcase)}' and certNumber eq #{certificate_number}"
        self.class.get('/History',
                       query:
                       { '$inlinecount' => 'all',
                         '$format' => 'json',
                         '$filter' => filter})
      end

      private

      def escape_single_quotes(string)
        # Urm? The API 500's if you have a single-quote in name: "People's United Bank."
        # Their web forms double-up the single-quotes to escape them.
        # NB: let's keep an eye on this flim-flam, and be sure it doesn't get out of hand.
        string.gsub("'", "''")
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
fdic-0.7.0 lib/fdic/bank_find/client.rb
fdic-0.6.0 lib/fdic/bank_find/client.rb
fdic-0.5.0 lib/fdic/bank_find/client.rb
fdic-0.4.0 lib/fdic/client.rb