Factor out a Customer object
2 files changed, 35 insertions(+), 23 deletions(-) M config.ru A lib/customer.rb
M config.ru => config.ru +3 -23
@@ 16,6 16,7 @@ if ENV["RACK_ENV"] == "development" end require_relative "lib/auto_top_up_repo" require_relative "lib/customer" require_relative "lib/three_d_secure_repo" require_relative "lib/electrum" @@ 70,25 71,14 @@ class CreditCardGateway end def customer_id customer_id = REDIS.get(redis_key_jid) customer_id = Customer.new(nil, @jid).customer_id return customer_id if check_customer_id(customer_id) result = @gateway.customer.create raise "Braintree customer create failed" unless result.success? @customer_id = result.customer.id save_customer_id! end def save_customer_id! unless REDIS.set(redis_key_jid, @customer_id) == "OK" raise "Saving new jid,customer to redis failed" end unless REDIS.set(redis_key_customer_id, @jid) == "OK" raise "Saving new customer,jid to redis failed" end Customer.new(@customer_id, @jid).save! @customer_id end @@ 157,16 147,6 @@ class CreditCardGateway def remove_method(token) @gateway.payment_method.delete(token) end protected def redis_key_jid "jmp_customer_id-#{@jid}" end def redis_key_customer_id "jmp_customer_jid-#{@customer_id}" end end class UnknownTransactions
A lib/customer.rb => lib/customer.rb +32 -0
@@ 0,0 1,32 @@ # frozen_string_literal: true class Customer def initialize(customer_id, jid) @customer_id = customer_id @jid = jid end def customer_id @customer_id = REDIS.get(redis_key_jid) end def save! unless REDIS.set(redis_key_jid, @customer_id) == "OK" raise "Saving new jid,customer to redis failed" end return if REDIS.set(redis_key_customer_id, @jid) == "OK" raise "Saving new customer,jid to redis failed" end protected def redis_key_jid "jmp_customer_id-#{@jid}" end def redis_key_customer_id "jmp_customer_jid-#{@customer_id}" end end