Class: Slk::Services::TargetResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/slk/services/target_resolver.rb

Overview

Resolves message targets (channels, DMs, URLs) to channel IDs

Defined Under Namespace

Classes: Result

Instance Method Summary collapse

Constructor Details

#initialize(runner:, cache_store:) ⇒ TargetResolver

Returns a new instance of TargetResolver.



9
10
11
12
# File 'lib/slk/services/target_resolver.rb', line 9

def initialize(runner:, cache_store:)
  @runner = runner
  @cache = cache_store
end

Instance Method Details

#resolve(target, default_workspace:) ⇒ Result

Resolve a target string to workspace, channel_id, and optional thread/message ts

Parameters:

  • target (String)

    Channel name, @user, channel ID, or Slack URL

  • default_workspace (Workspace)

    Workspace to use if not in URL

Returns:

  • (Result)

    Resolved target



18
19
20
21
22
23
# File 'lib/slk/services/target_resolver.rb', line 18

def resolve(target, default_workspace:)
  url_result = resolve_url(target)
  return url_result if url_result

  resolve_non_url(target, default_workspace)
end