Class: Prolenea::ProleneaResponseMiddleware

Inherits:
Faraday::Response::Middleware
  • Object
show all
Defined in:
lib/prolenea/middleware/prolenea_response_middleware.rb

Constant Summary collapse

RESPONSE_ROW_NAMES =
%w(
  number
  local_routing_number
  ported_date
  alternative_spid
  alternative_spid_name
  line_type
  operating_company_number
  operating_company_name
  lata
  city
  state
)

Instance Method Summary collapse

Instance Method Details

#on_complete(env) ⇒ Object



18
19
20
21
22
23
24
25
26
27
# File 'lib/prolenea/middleware/prolenea_response_middleware.rb', line 18

def on_complete(env)
  case env[:status]
  when 200
    env[:parsed_body] = self.parse_body env[:body]
  else
    raise ProleneaRequestError.new({}), "Recieved an unexpected HTTP response code #{env[:status]}"
  end

  env
end

#parse_body(body) ⇒ Object



29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/prolenea/middleware/prolenea_response_middleware.rb', line 29

def parse_body(body)
  number_info = {}
  rows = body.split("\r\n")

  if rows.length != RESPONSE_ROW_NAMES.length
    raise ProleneaRequestError.new({}), "Unable to parse HTTP response body"
  end

  rows.each_with_index do |row, i|
    number_info[RESPONSE_ROW_NAMES[i]] = (row == '-' ? nil : row)
  end

  number_info
end