diff --git a/lib/error_to_send.rb b/lib/error_to_send.rb new file mode 100644 index 0000000000000000000000000000000000000000..c9d3a9dfde79cf71fd7c95f1537955d689a18724 --- /dev/null +++ b/lib/error_to_send.rb @@ -0,0 +1,10 @@ +# frozen_string_literal: true + +class ErrorToSend < StandardError + attr_reader :stanza + + def initialize(stanza) + super(stanza.to_s) + @stanza = stanza + end +end diff --git a/lib/web_register_manager.rb b/lib/web_register_manager.rb index d3006b71d261df70cc82ba3a5fe9dbb08f0b9411..167ad53654df4303556baca9db6e2783769104a5 100644 --- a/lib/web_register_manager.rb +++ b/lib/web_register_manager.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require_relative "error_to_send" + class WebRegisterManager def initialize @tel_map = Hash.new { ChooseTel.new } @@ -35,7 +37,7 @@ class WebRegisterManager reply.note_text = "You have not chosen a phone number yet, please return to " \ "https://jmp.chat and choose one now." - EMPromise.reject(reply) + raise ErrorToSend, reply end end end diff --git a/sgx_jmp.rb b/sgx_jmp.rb index 89d7314089022463498ff0b009b66a3394efb2b5..0859cb9ea8fc04d8df73a41e5232643075458e0c 100644 --- a/sgx_jmp.rb +++ b/sgx_jmp.rb @@ -36,6 +36,7 @@ require_relative "lib/buy_account_credit_form" require_relative "lib/command_list" require_relative "lib/customer" require_relative "lib/electrum" +require_relative "lib/error_to_send" require_relative "lib/em" require_relative "lib/payment_methods" require_relative "lib/registration" @@ -379,8 +380,8 @@ command :execute?, node: "jabber:iq:register", sessionid: nil do |iq| customer, web_register_manager ).then(&:write).then { StatsD.increment("registration.completed") } - }.catch_only(Blather::Stanza) { |reply| - self << reply + }.catch_only(ErrorToSend) { |e| + self << e.stanza }.catch { |e| panic(e, sentry_hub) } end