~singpolyma/sgx-jmp

2f7a1b60192a14c86ef9a1f727ea9369cfedc2c6 — Stephen Paul Weber 7 months ago b754e6f + 2d687b1
Merge branch 'more-tel-selection-coverage'

* more-tel-selection-coverage:
  Patch bandwidth-iris to raise useful exceptions
  More city maps
3 files changed, 37 insertions(+), 1 deletions(-)

A lib/bandwidth_iris_patch.rb
M lib/tel_selections.rb
M sgx_jmp.rb
A lib/bandwidth_iris_patch.rb => lib/bandwidth_iris_patch.rb +27 -0
@@ 0,0 1,27 @@
# frozen_string_literal: true

require "ruby-bandwidth-iris"

module BandwidthIris
	class APIError < StandardError
		attr_reader :code

		def initialize(description:, code: nil)
			super(description)
			@code = code
		end
	end

	class Client
		# Expose useful error messages from the API instead of hiding them
		def check_response(response)
			parsed_body = parse_xml(response.body || "")
			return parsed_body unless response.status >= 400
			raise APIError.new(**parsed_body[:error]) if parsed_body.key?(:error)

			raise Errors::GenericError.new(
				"", "Http code #{response.status}", response.status
			)
		end
	end
end

M lib/tel_selections.rb => lib/tel_selections.rb +9 -1
@@ 190,8 190,16 @@ class TelSelections
				Q.register(/\A([^,]+)\s*,\s*([A-Z]{2})\Z/, &method(:new))

				CITY_MAP = {
					"ajax" => "Ajax-Pickering",
					"kitchener" => "Kitchener-Waterloo",
					"waterloo" => "Kitchener-Waterloo"
					"new york" => "New York City",
					"pickering" => "Ajax-Pickering",
					"sault ste marie" => "sault sainte marie",
					"sault ste. marie" => "sault sainte marie",
					"south durham" => "Durham",
					"township of langley" => "Langley",
					"waterloo" => "Kitchener-Waterloo",
					"west durham" => "Durham"
				}.freeze

				STATE_MAP = {

M sgx_jmp.rb => sgx_jmp.rb +1 -0
@@ 70,6 70,7 @@ require_relative "lib/alt_top_up_form"
require_relative "lib/add_bitcoin_address"
require_relative "lib/backend_sgx"
require_relative "lib/bwmsgsv2_repo"
require_relative "lib/bandwidth_iris_patch"
require_relative "lib/bandwidth_tn_order"
require_relative "lib/btc_sell_prices"
require_relative "lib/buy_account_credit_form"