From fee70ea92607ad40580d6ee9cbe1b437adff637d Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Mon, 6 Mar 2023 15:09:23 -0500 Subject: [PATCH] Factor out a Customer object --- config.ru | 26 +++----------------------- lib/customer.rb | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 35 insertions(+), 23 deletions(-) create mode 100644 lib/customer.rb diff --git a/config.ru b/config.ru index 7e6b90595d0418389f718431e0efec89297483d3..f2cc88287bfb7cefd0486356e4ac96cbc49a0f48 100644 --- a/config.ru +++ b/config.ru @@ -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 diff --git a/lib/customer.rb b/lib/customer.rb new file mode 100644 index 0000000000000000000000000000000000000000..01843622f2408bca14a07a90fc45b4eca2eeb388 --- /dev/null +++ b/lib/customer.rb @@ -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