Class: Slk::Services::UserLookup
- Inherits:
-
Object
- Object
- Slk::Services::UserLookup
- Defined in:
- lib/slk/services/user_lookup.rb
Overview
Consolidated service for user name resolution Provides ID → name and name → ID lookups with caching
Instance Method Summary collapse
-
#find_id_by_name(name) ⇒ String?
Find user ID by display name (reverse lookup).
-
#initialize(cache_store:, workspace:, api_client: nil, on_debug: nil) ⇒ UserLookup
constructor
A new instance of UserLookup.
-
#resolve_name(user_id) ⇒ String?
Resolve user ID to display name (most common use case).
-
#resolve_name_or_bot(user_id) ⇒ String?
Resolve user ID to display name, handling bots.
Constructor Details
#initialize(cache_store:, workspace:, api_client: nil, on_debug: nil) ⇒ UserLookup
Returns a new instance of UserLookup.
8 9 10 11 12 13 |
# File 'lib/slk/services/user_lookup.rb', line 8 def initialize(cache_store:, workspace:, api_client: nil, on_debug: nil) @cache = cache_store @api = api_client @workspace = workspace @on_debug = on_debug end |
Instance Method Details
#find_id_by_name(name) ⇒ String?
Find user ID by display name (reverse lookup)
46 47 48 49 50 51 52 53 |
# File 'lib/slk/services/user_lookup.rb', line 46 def find_id_by_name(name) return nil if name.to_s.empty? cached = @cache.get_user_id_by_name(@workspace.name, name) return cached if cached fetch_id_by_name(name) end |
#resolve_name(user_id) ⇒ String?
Resolve user ID to display name (most common use case)
18 19 20 21 22 23 24 25 |
# File 'lib/slk/services/user_lookup.rb', line 18 def resolve_name(user_id) return nil if user_id.to_s.empty? cached = @cache.get_user(@workspace.name, user_id) return cached if cached fetch_and_cache_name(user_id) end |
#resolve_name_or_bot(user_id) ⇒ String?
Resolve user ID to display name, handling bots
30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/slk/services/user_lookup.rb', line 30 def resolve_name_or_bot(user_id) return nil if user_id.to_s.empty? cached = @cache.get_user(@workspace.name, user_id) return cached if cached if user_id.start_with?('B') fetch_and_cache_bot_name(user_id) else fetch_and_cache_name(user_id) end end |