@@ 7,6 7,8 @@ require_relative "legacy_customer"
require_relative "polyfill"
class CustomerRepo
+ class NotFound < RuntimeError; end
+
def initialize(
redis: LazyObject.new { REDIS },
db: LazyObject.new { DB },
@@ 21,7 23,7 @@ class CustomerRepo
def find(customer_id)
@redis.get("jmp_customer_jid-#{customer_id}").then do |jid|
- raise "No jid" unless jid
+ raise NotFound, "No jid" unless jid
find_inner(customer_id, jid)
end
end
@@ 30,18 32,16 @@ class CustomerRepo
if jid.to_s =~ /\Acustomer_(.+)@#{CONFIG[:component][:jid]}\Z/
find($1)
else
- @redis.get("jmp_customer_id-#{jid}").then { |customer_id|
- raise "No customer id" unless customer_id
+ @redis.get("jmp_customer_id-#{jid}").then do |customer_id|
+ next find_legacy_customer(jid) unless customer_id
find_inner(customer_id, jid)
- }.catch do
- find_legacy_customer(jid)
end
end
end
def find_by_tel(tel)
@redis.get("catapult_jid-#{tel}").then do |jid|
- raise "No jid" unless jid
+ raise NotFound, "No jid" unless jid
find_by_jid(jid)
end
end
@@ 69,7 69,7 @@ protected
def find_legacy_customer(jid)
@redis.lindex("catapult_cred-#{jid}", 3).then do |tel|
- raise "No customer" unless tel
+ raise NotFound, "No customer" unless tel
LegacyCustomer.new(Blather::JID.new(jid), tel)
end
end