From 9d07295480a7cb09d18870397bb1ba575f92b2ef Mon Sep 17 00:00:00 2001 From: Maikel Linke Date: Thu, 27 Aug 2020 09:54:19 +1000 Subject: [PATCH] DRY error reporting during payment --- .../darkswarm/services/stripe_elements.js.coffee | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/darkswarm/services/stripe_elements.js.coffee b/app/assets/javascripts/darkswarm/services/stripe_elements.js.coffee index 90720a4fdb..1fffcac18e 100644 --- a/app/assets/javascripts/darkswarm/services/stripe_elements.js.coffee +++ b/app/assets/javascripts/darkswarm/services/stripe_elements.js.coffee @@ -13,9 +13,7 @@ Darkswarm.factory 'StripeElements', ($rootScope, Messages) -> @stripe.createToken(@card, cardData).then (response) => if(response.error) - Messages.error(t("error") + ": #{response.error.message}") - @triggerAngularDigest() - console.error(JSON.stringify(response.error)) + @reportError(response.error, t("error") + ": #{response.error.message}") else secrets.token = response.token.id secrets.cc_type = @mapTokenApiCardBrand(response.token.card.brand) @@ -31,15 +29,18 @@ Darkswarm.factory 'StripeElements', ($rootScope, Messages) -> @stripe.createPaymentMethod({ type: 'card', card: @card }, @card, cardData).then (response) => if(response.error) - Messages.error(t("error") + ": #{response.error.message}") - @triggerAngularDigest() - console.error(JSON.stringify(response.error)) + @reportError(response.error, t("error") + ": #{response.error.message}") else secrets.token = response.paymentMethod.id secrets.cc_type = @mapPaymentMethodsApiCardBrand(response.paymentMethod.card.brand) secrets.card = response.paymentMethod.card submit() + reportError: (error, messageForUser) -> + Messages.error(messageForUser) + @triggerAngularDigest() + console.error(JSON.stringify(error)) + triggerAngularDigest: -> # $evalAsync is improved way of triggering a digest without calling $apply $rootScope.$evalAsync()