Show CNAM in customer info

Stephen Paul Weber created

Change summary

lib/customer.rb            | 2 ++
lib/customer_info.rb       | 5 ++++-
test/test_customer_info.rb | 4 ++++
3 files changed, 10 insertions(+), 1 deletion(-)

Detailed changes

lib/customer.rb 🔗

@@ -85,6 +85,8 @@ class Customer
 	end
 
 	def tndetails
+		return unless registered?
+
 		@tndetails ||=
 			BandwidthIris::Tn.new(telephone_number: registered?.phone).get_details
 	end

lib/customer_info.rb 🔗

@@ -12,6 +12,7 @@ class CustomerInfo
 		tel Either(String, nil)
 		balance BigDecimal
 		expires_at Either(Time, nil)
+		cnam Either(String, nil)
 	end
 
 	def self.for(customer, plan, expires_at)
@@ -21,7 +22,8 @@ class CustomerInfo
 				auto_top_up_amount: auto_top_up_amount,
 				tel: customer.registered? ? customer.registered?.phone : nil,
 				balance: customer.balance,
-				expires_at: expires_at
+				expires_at: expires_at,
+				cnam: customer.tndetails&.dig(:features, :lidb, :subscriber_information)
 			)
 		end
 	end
@@ -64,6 +66,7 @@ class CustomerInfo
 		[
 			{ var: "Account Status", value: account_status },
 			{ var: "Phone Number", value: tel || "Not Registered" },
+			({ var: "lidb_name", label: "CNAM", value: cnam } if cnam),
 			{ var: "Balance", value: "$%.4f" % balance },
 			monthly_amount,
 			next_renewal,

test/test_customer_info.rb 🔗

@@ -10,6 +10,7 @@ class CustomerInfoTest < Minitest::Test
 	def test_info_does_not_crash
 		sgx = Minitest::Mock.new
 		sgx.expect(:registered?, false)
+		sgx.expect(:registered?, false)
 
 		CustomerPlan::REDIS.expect(
 			:get,
@@ -26,6 +27,7 @@ class CustomerInfoTest < Minitest::Test
 	def test_admin_info_does_not_crash
 		sgx = Minitest::Mock.new
 		sgx.expect(:registered?, false)
+		sgx.expect(:registered?, false)
 
 		CustomerPlan::REDIS.expect(
 			:get,
@@ -42,6 +44,7 @@ class CustomerInfoTest < Minitest::Test
 	def test_inactive_info_does_not_crash
 		sgx = Minitest::Mock.new
 		sgx.expect(:registered?, false)
+		sgx.expect(:registered?, false)
 
 		CustomerPlan::REDIS.expect(
 			:get,
@@ -64,6 +67,7 @@ class CustomerInfoTest < Minitest::Test
 	def test_inactive_admin_info_does_not_crash
 		sgx = Minitest::Mock.new
 		sgx.expect(:registered?, false)
+		sgx.expect(:registered?, false)
 
 		CustomerPlan::REDIS.expect(
 			:get,