ContinuityControl/ncua

View on GitHub
lib/ncua.rb

Summary

Maintainability
A
0 mins
Test Coverage
require 'httparty'
require 'nokogiri'
require 'ncua/version'
require 'ncua/client'
require 'ncua/client_validator'
require 'ncua/credit_union/record'
require 'ncua/credit_union/office'
require 'ncua/credit_union/details'
require 'ncua/credit_union/scraper'
require 'ncua/credit_union/scraper_validator'
require 'ncua/credit_union/details_client'
require 'tasks/ncua_tasks'

module NCUA
  require "ncua/railtie" if defined?(Rails)

  def self.find_office_by_address(address, opts={radius: 100})
    resp = Client.new.find_credit_union_by_address(address, opts[:radius])
    resp["list"].map { |result| CreditUnion::Office.new(result) }
  end

  def self.find_office_by_name(name)
    resp = Client.new.find_credit_union_by_name(name)
    resp["list"].map { |result| CreditUnion::Office.new(result) }
  end

  def self.find_office_by_charter_number(charter_number)
    resp = Client.new.find_credit_union_by_charter_number(charter_number)
    resp["list"].map { |result| CreditUnion::Office.new(result) }
  end

  def self.find_credit_union(charter_number)
    CreditUnion::Details.new(CreditUnion::Scraper.new(charter_number).scrape!)
  end

  def self.validate_schema!
    unless NCUA::CreditUnion::ScraperValidator.new.schema_valid?
      raise "NCUA CreditUnion Scraper Schema is invalid. Please contact Gem Maintainer"
    end

    unless NCUA::ClientValidator.schema_valid?
      raise "NCUA Client Schema is invalid. Please contact Gem Maintainer"
    end

    true
  end

  def self.schema_valid?
    NCUA::CreditUnion::Scraper.new(42).schema_valid? && NCUA::ClientValidator.schema_valid?
  end
end