From 65d4a15d33265409dbe3fc7e3d236ac404d2210f Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 3 Aug 2022 21:19:30 -0500 Subject: [PATCH 1/2] On customer load error, try not loading from SGX and assuming no transcription --- lib/trivial_backend_sgx_repo.rb | 6 ++++-- web.rb | 18 +++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/lib/trivial_backend_sgx_repo.rb b/lib/trivial_backend_sgx_repo.rb index dae803d37c46a2b654235f713083207b28ac5f06..93229cbd96dc8b3ee344e5173a986774cc40d9d9 100644 --- a/lib/trivial_backend_sgx_repo.rb +++ b/lib/trivial_backend_sgx_repo.rb @@ -7,11 +7,13 @@ class TrivialBackendSgxRepo def initialize( jid: CONFIG[:sgx], creds: CONFIG[:creds], - component_jid: CONFIG[:component][:jid] + component_jid: CONFIG[:component][:jid], + **with ) @jid = Blather::JID.new(jid) @creds = creds @component_jid = component_jid + @with = with end def get(customer_id) @@ -22,6 +24,6 @@ class TrivialBackendSgxRepo fwd: NotLoaded.new(:fwd_timeout), transcription_enabled: NotLoaded.new(:transcription_enabled), registered?: NotLoaded.new(:registered?) - ) + ).with(@with) end end diff --git a/web.rb b/web.rb index 65fcdee8d4a9f471d3ad21e9c9279a8d54795215..423686746fbcecd681651f21190b89ec7890db0f 100644 --- a/web.rb +++ b/web.rb @@ -106,6 +106,17 @@ class Web < Roda opts[:customer_repo] || CustomerRepo.new(**kwargs) end + def find_by_tel_with_fallback(sgx_repo:, **kwargs) + customer_repo(sgx_repo: sgx_repo).find_by_tel(params["to"]).catch { |e| + next EMPromise.reject(e) if e.is_a?(CustomerRepo::NotFound) + + log_error(e) + customer_repo( + sgx_repo: TrivialBackendSgxRepo.new(**kwargs) + ).find_by_tel(params["to"]) + } + end + def call_attempt_repo opts[:call_attempt_repo] || CallAttemptRepo.new end @@ -223,9 +234,10 @@ class Web < Roda "https://jmp.chat" ) - customer_repo( - sgx_repo: Bwmsgsv2Repo.new - ).find_by_tel(params["to"]).then do |customer| + find_by_tel_with_fallback( + sgx_repo: Bwmsgsv2Repo.new, + transcription_enabled: false + ).then do |customer| start_transcription(customer, call_id, jmp_media_url) m = Blather::Stanza::Message.new From c2cc2f08a2777e0044bf773677115570856d9abf Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Wed, 3 Aug 2022 20:58:54 -0500 Subject: [PATCH 2/2] Use default OGM when error loading customer --- web.rb | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/web.rb b/web.rb index 423686746fbcecd681651f21190b89ec7890db0f..59947a9698ca49b41bf0dc5b99dcd52f2a63a7fc 100644 --- a/web.rb +++ b/web.rb @@ -292,16 +292,14 @@ class Web < Roda end r.post do - customer_repo(sgx_repo: Bwmsgsv2Repo.new) - .find_by_tel(params["to"]) - .then { |c| - EMPromise.all([c, c.ogm(params["from"])]) - }.then do |(customer, ogm)| - render :voicemail, locals: { - ogm: ogm, - transcription_enabled: customer.transcription_enabled - } - end + find_by_tel_with_fallback( + sgx_repo: Bwmsgsv2Repo.new, + ogm_url: nil + ).then { |c| + c.ogm(params["from"]) + }.then { |ogm| + render :voicemail, locals: { ogm: ogm } + } end end