diff --git a/lib/tel_selections.rb b/lib/tel_selections.rb index 1c3b3d08e3459329c66124bedab0f921700600e7..9b7cbe3e8f5a9cca2d88fc78606f76b4c5aea5ac 100644 --- a/lib/tel_selections.rb +++ b/lib/tel_selections.rb @@ -42,7 +42,10 @@ class TelSelections reply.allowed_actions = [:next] reply.command << FormTemplate.render("tn_search", error: error) }.then do |iq| - choose_from_list(AvailableNumber.for(iq.form).tns) + available = AvailableNumber.for(iq.form) + next available if available.is_a?(String) + + choose_from_list(available.tns) rescue StandardError choose_tel(error: $!.to_s) end @@ -64,9 +67,12 @@ class TelSelections class AvailableNumber def self.for(form) + q = form.field("q")&.value.to_s.strip + return q if q =~ /\A\+1\d{10}\Z/ + new( Q - .for(form.field("q").value.to_s.strip).iris_query + .for(q).iris_query .merge(enableTNDetail: true, LCA: false) .merge(Quantity.for(form).iris_query) )