class Samwise::Client

Public Class Methods

new(api_key: nil, sam_status_key: Samwise::Protocol::SAM_STATUS_KEY) click to toggle source
# File lib/samwise/client.rb, line 7
def initialize(api_key: nil, sam_status_key: Samwise::Protocol::SAM_STATUS_KEY)
  @api_key        = api_key        || ENV['DATA_DOT_GOV_API_KEY']
  @sam_status_key = sam_status_key || ENV['SAM_STATUS_KEY']
  @client = HTTPClient.new
end

Public Instance Methods

duns_is_in_sam?(duns: nil) click to toggle source
# File lib/samwise/client.rb, line 27
def duns_is_in_sam?(duns: nil)
  response = lookup_duns(duns: duns)
  parse_response_for_sam_status(response)
end
excluded?(duns: nil) click to toggle source
# File lib/samwise/client.rb, line 37
def excluded?(duns: nil)
  response = lookup_duns(duns: duns)
  JSON.parse(response.body)["hasKnownExclusion"] == false
end
get_duns_info(duns: nil) click to toggle source
# File lib/samwise/client.rb, line 13
def get_duns_info(duns: nil)
  response = lookup_duns(duns: duns)
  JSON.parse(response.body)
end
get_sam_status(duns: nil) click to toggle source
# File lib/samwise/client.rb, line 32
def get_sam_status(duns: nil)
  response = lookup_sam_status(duns: duns)
  JSON.parse(response.body)
end
get_vendor_summary(duns: nil) click to toggle source
# File lib/samwise/client.rb, line 18
def get_vendor_summary(duns: nil)
  response = lookup_duns(duns: duns)

  {
    in_sam: parse_response_for_sam_status(response),
    small_business: small_business?(response)
  }
end

Private Instance Methods

lookup_duns(duns: nil) click to toggle source
# File lib/samwise/client.rb, line 52
def lookup_duns(duns: nil)
  duns = Samwise::Util.format_duns(duns: duns)
  @client.get Samwise::Protocol.duns_url(duns: duns, api_key: @api_key)
end
lookup_sam_status(duns: nil) click to toggle source
# File lib/samwise/client.rb, line 57
def lookup_sam_status(duns: nil)
  duns = Samwise::Util.format_duns(duns: duns)
  @client.get Samwise::Protocol.sam_status_url(duns: duns, api_key: @api_key)
end
parse_response_for_sam_status(response) click to toggle source
# File lib/samwise/client.rb, line 44
def parse_response_for_sam_status(response)
  response.status == 200
end
small_business?(response) click to toggle source
# File lib/samwise/client.rb, line 48
def small_business?(response)
  Samwise::DunsLookup.new(response).small_business?
end