~singpolyma/jmp-pay

fee70ea92607ad40580d6ee9cbe1b437adff637d — Stephen Paul Weber 6 months ago 199fd55
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