From 9d529fc0c262c5700739071291c95a944559b9b2 Mon Sep 17 00:00:00 2001 From: root21 Date: Wed, 15 Feb 2023 14:00:44 -0600 Subject: [PATCH] SIM nicknames feature Added columns to the eSIMs command to now display the nickname of a SIM, if set. Added test for the new columns in sim_repo. Added nicknames column to sims form, and modified to a multiline form. --- forms/sim_details.rb | 7 ++++++- lib/sim.rb | 1 + lib/sim_repo.rb | 6 ++++-- schemas | 2 +- test/test_sim_repo.rb | 3 ++- 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/forms/sim_details.rb b/forms/sim_details.rb index 5da27cdbc08d4ad4ceb420eb2eccb2d8af1b9508..3463f95fe2c319e726ce892276a43f603dc45b36 100644 --- a/forms/sim_details.rb +++ b/forms/sim_details.rb @@ -1,4 +1,9 @@ result! title "(e)SIM Details" -table(@sims, iccid: "ICCID", remaining_usage_mb: "MB Remaining") +table( + @sims, + iccid: "ICCID", + remaining_usage_mb: "MB Remaining", + nickname: "Nickname" +) diff --git a/lib/sim.rb b/lib/sim.rb index cd72b77f266a6b3f56add81ad5baf1069753409d..2d666b58f9ac8740f8acc508448f0298d90707d2 100644 --- a/lib/sim.rb +++ b/lib/sim.rb @@ -9,6 +9,7 @@ class SIM remaining_usage_kb Integer remaining_days Integer notes String + nickname Either(String, nil), default: nil end def self.extract(kwargs) diff --git a/lib/sim_repo.rb b/lib/sim_repo.rb index deeacbcb5375816d6df764d562ff291c6ee1ec4d..15412c7b5e1847124090d6e4483aa07d9c6594e0 100644 --- a/lib/sim_repo.rb +++ b/lib/sim_repo.rb @@ -26,10 +26,12 @@ class SIMRepo def owned_by(customer) customer = customer.customer_id if customer.respond_to?(:customer_id) promise = db.query_defer(<<~SQL, [customer]) - SELECT iccid FROM sims WHERE customer_id=$1 + SELECT iccid, nickname FROM sims WHERE customer_id=$1 SQL promise.then { |result| - EMPromise.all(result.map { |row| find(row["iccid"]) }) + EMPromise.all(result.map { |row| + find(row["iccid"]).then { |sim| sim.with(nickname: row["nickname"]) } + }) } end end diff --git a/schemas b/schemas index a449672f5cad37e63e6339e4577ed27ff8289df9..a9f8b83487140f91fc8da3a3de99f5f28aa060b9 160000 --- a/schemas +++ b/schemas @@ -1 +1 @@ -Subproject commit a449672f5cad37e63e6339e4577ed27ff8289df9 +Subproject commit a9f8b83487140f91fc8da3a3de99f5f28aa060b9 diff --git a/test/test_sim_repo.rb b/test/test_sim_repo.rb index c04429493dbdf63de77ad315eb7a9dedf5826d06..ced0d5dcc900a57feb2e388788c73cf4849a7215 100644 --- a/test/test_sim_repo.rb +++ b/test/test_sim_repo.rb @@ -7,7 +7,7 @@ class SIMRepoTest < Minitest::Test def setup @repo = SIMRepo.new( db: FakeDB.new( - ["test"] => [{ "iccid" => "1234" }] + ["test"] => [{ "iccid" => "1234", "nickname" => "My Cool SIM" }] ) ) end @@ -33,6 +33,7 @@ class SIMRepoTest < Minitest::Test sims = @repo.owned_by("test").sync assert_equal 1, sims.length assert_equal "1234", sims[0].iccid + assert_equal "My Cool SIM", sims[0].nickname assert_requested req end em :test_owned_by