Factor out with_antifraud helper

Stephen Paul Weber created

Change summary

config.ru | 32 +++++++++++++++-----------------
1 file changed, 15 insertions(+), 17 deletions(-)

Detailed changes

config.ru 🔗

@@ -117,31 +117,29 @@ class CreditCardGateway
 			)
 	end
 
-	def incr_antifraud!
+	def with_antifraud
+		result = antifraud || yield
+		return result if result.success?
+
 		@antifraud.each do |k|
 			REDIS.incr("jmp_antifraud-#{k}")
 			REDIS.expire("jmp_antifraud-#{k}", 60 * 60 * 24)
 		end
-	end
 
-	def payment_method_create_options
-		options = { verify_card: true, make_default: true }
-		if merchant_account
-			options[:verification_merchant_account_id] = merchant_account.to_s
-		end
-		options
+		raise ErrorResult.for(result)
 	end
 
-	def default_method(nonce)
-		result = antifraud || @gateway.payment_method.create(
-			customer_id: customer_id, payment_method_nonce: nonce,
-			options: payment_method_create_options
-		)
 
-		return result if result.success?
-
-		incr_antifraud!
-		raise ErrorResult.for(result)
+	def default_method(nonce)
+		with_antifraud do
+			@gateway.payment_method.create(
+				customer_id: customer_id, payment_method_nonce: nonce,
+				options: {
+					verify_card: true, make_default: true,
+					verification_merchant_account_id: merchant_account.to_s
+				}
+			)
+		end
 	end
 
 	def remove_method(token)