From 980f004b831baf10f70a31042ee5b4fbc71192e0 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Fri, 11 Feb 2022 15:56:11 +0000 Subject: [PATCH 1/2] Update Bugsnag error data --- app/controllers/concerns/order_completion.rb | 8 ++++++-- app/controllers/concerns/order_stock_check.rb | 4 +++- app/jobs/subscription_confirm_job.rb | 9 +++++++-- app/services/place_proxy_order.rb | 9 +++++++-- spec/services/place_proxy_order_spec.rb | 2 +- 5 files changed, 24 insertions(+), 8 deletions(-) diff --git a/app/controllers/concerns/order_completion.rb b/app/controllers/concerns/order_completion.rb index ecce3b66ba..215f747045 100644 --- a/app/controllers/concerns/order_completion.rb +++ b/app/controllers/concerns/order_completion.rb @@ -50,7 +50,9 @@ module OrderCompletion end def order_invalid! - Bugsnag.notify("Notice: invalid order loaded during checkout", order: @order) + Bugsnag.notify("Notice: invalid order loaded during checkout") do |payload| + payload.add_metadata :order, @order + end flash[:error] = t('checkout.order_not_loaded') redirect_to main_app.shop_path @@ -81,7 +83,9 @@ module OrderCompletion end def processing_failed(error = RuntimeError.new(order_processing_error)) - Bugsnag.notify(error, order: @order) + Bugsnag.notify(error) do |payload| + payload.add_metadata :order, @order + end flash[:error] = order_processing_error if flash.blank? Checkout::PostCheckoutActions.new(@order).failure end diff --git a/app/controllers/concerns/order_stock_check.rb b/app/controllers/concerns/order_stock_check.rb index 4b00877e92..e0f7aefac5 100644 --- a/app/controllers/concerns/order_stock_check.rb +++ b/app/controllers/concerns/order_stock_check.rb @@ -21,7 +21,9 @@ module OrderStockCheck def check_order_cycle_expiry return unless current_order_cycle&.closed? - Bugsnag.notify("Notice: order cycle closed during checkout completion", order: current_order) + Bugsnag.notify("Notice: order cycle closed during checkout completion") do |payload| + payload.add_metadata :order, current_order + end current_order.empty! current_order.set_order_cycle! nil diff --git a/app/jobs/subscription_confirm_job.rb b/app/jobs/subscription_confirm_job.rb index 0ad025d9f6..9bdc409a3d 100644 --- a/app/jobs/subscription_confirm_job.rb +++ b/app/jobs/subscription_confirm_job.rb @@ -55,7 +55,9 @@ class SubscriptionConfirmJob < ActiveJob::Base if order.errors.any? send_failed_payment_email(order) else - Bugsnag.notify(e, order: order) + Bugsnag.notify(e) do |payload| + payload.add_metadata :order, order + end send_failed_payment_email(order, e.message) end end @@ -106,6 +108,9 @@ class SubscriptionConfirmJob < ActiveJob::Base record_and_log_error(:failed_payment, order, error_message) SubscriptionMailer.failed_payment_email(order).deliver_now rescue StandardError => e - Bugsnag.notify(e, order: order, error_message: error_message) + Bugsnag.notify(e) do |payload| + payload.add_metadata :order, order + payload.add_metadata :error_message, error_message + end end end diff --git a/app/services/place_proxy_order.rb b/app/services/place_proxy_order.rb index b324dee154..aaa88f620d 100644 --- a/app/services/place_proxy_order.rb +++ b/app/services/place_proxy_order.rb @@ -24,7 +24,9 @@ class PlaceProxyOrder send_placement_email rescue StandardError => e summarizer.record_and_log_error(:processing, order, e.message) - Bugsnag.notify(e, order: order) + Bugsnag.notify(e) do |payload| + payload.add_metadata :order, order + end end private @@ -54,7 +56,10 @@ class PlaceProxyOrder true rescue StandardError => e - Bugsnag.notify(e, subscription: subscription, proxy_order: proxy_order) + Bugsnag.notify(e) do |payload| + payload.add_metadata :subscription, subscription + payload.add_metadata :proxy_order, proxy_order + end false end diff --git a/spec/services/place_proxy_order_spec.rb b/spec/services/place_proxy_order_spec.rb index 5982633f3a..3c6984f5ec 100644 --- a/spec/services/place_proxy_order_spec.rb +++ b/spec/services/place_proxy_order_spec.rb @@ -37,7 +37,7 @@ describe PlaceProxyOrder do order.line_items << build(:line_item) expect(summarizer).to receive(:record_and_log_error).with(:processing, order, kind_of(String)) - expect(Bugsnag).to receive(:notify).with(kind_of(StandardError), order: order) + expect(Bugsnag).to receive(:notify).with(kind_of(StandardError)) subject.call end From 0ca86344d2d03e1afa3e9d6292c84a4ab51a4c47 Mon Sep 17 00:00:00 2001 From: Matt-Yorkley <9029026+Matt-Yorkley@users.noreply.github.com> Date: Mon, 14 Feb 2022 12:35:29 +0000 Subject: [PATCH 2/2] Update use of deprecated #add_tab method to #add_metadata --- app/controllers/spree/admin/products_controller.rb | 8 ++++---- app/models/spree/order.rb | 6 +++--- app/services/sets/product_set.rb | 10 +++++----- 3 files changed, 12 insertions(+), 12 deletions(-) diff --git a/app/controllers/spree/admin/products_controller.rb b/app/controllers/spree/admin/products_controller.rb index 17d4487560..1674748bb5 100644 --- a/app/controllers/spree/admin/products_controller.rb +++ b/app/controllers/spree/admin/products_controller.rb @@ -227,10 +227,10 @@ module Spree def notify_bugsnag(error, product, variant) Bugsnag.notify(error) do |report| - report.add_tab(:product, product.attributes) - report.add_tab(:product_error, product.errors.first) unless product.valid? - report.add_tab(:variant, variant.attributes) - report.add_tab(:variant_error, variant.errors.first) unless variant.valid? + report.add_metadata(:product, product.attributes) + report.add_metadata(:product_error, product.errors.first) unless product.valid? + report.add_metadata(:variant, variant.attributes) + report.add_metadata(:variant_error, variant.errors.first) unless variant.valid? end end diff --git a/app/models/spree/order.rb b/app/models/spree/order.rb index 53172c01d9..d5e3008576 100644 --- a/app/models/spree/order.rb +++ b/app/models/spree/order.rb @@ -540,9 +540,9 @@ module Spree # And the shipping fee is already up-to-date when this error occurs. # https://github.com/openfoodfoundation/openfoodnetwork/issues/3924 Bugsnag.notify(e) do |report| - report.add_tab(:order, attributes) - report.add_tab(:shipment, shipment.attributes) - report.add_tab(:shipment_in_db, Spree::Shipment.find_by(id: shipment.id).attributes) + report.add_metadata(:order, attributes) + report.add_metadata(:shipment, shipment.attributes) + report.add_metadata(:shipment_in_db, Spree::Shipment.find_by(id: shipment.id).attributes) end end diff --git a/app/services/sets/product_set.rb b/app/services/sets/product_set.rb index 1928c835e6..4446120aea 100644 --- a/app/services/sets/product_set.rb +++ b/app/services/sets/product_set.rb @@ -132,11 +132,11 @@ module Sets def notify_bugsnag(error, product, variant, variant_attributes) Bugsnag.notify(error) do |report| - report.add_tab(:product, product.attributes) - report.add_tab(:product_error, product.errors.first) unless product.valid? - report.add_tab(:variant_attributes, variant_attributes) - report.add_tab(:variant, variant.attributes) - report.add_tab(:variant_error, variant.errors.first) unless variant.valid? + report.add_metadata(:product, product.attributes) + report.add_metadata(:product_error, product.errors.first) unless product.valid? + report.add_metadata(:variant_attributes, variant_attributes) + report.add_metadata(:variant, variant.attributes) + report.add_metadata(:variant_error, variant.errors.first) unless variant.valid? end end