Class: Relay::Tools::RemoveSong

Inherits:
LLM::Tool
  • Object
show all
Includes:
Relay::Tool
Defined in:
app/tools/remove_song.rb

Instance Method Summary collapse

Methods included from Relay::Tool

#root

Instance Method Details

#call(by:, value:) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'app/tools/remove_song.rb', line 12

def call(by:, value:)
  params = remove_params(by, value)
  result = jukebox.remove(**params)
  if result[:removed].zero?
    {
      ok: true,
      by:,
      value:,
      message: "No matching jukebox entries were found; the requested song may already be absent",
      removed: 0,
      entries: []
    }
  else
    {
      ok: true,
      by:,
      value:,
      message: "Removed #{result[:removed]} jukebox entr#{result[:removed] == 1 ? "y" : "ies"}",
      removed: result[:removed],
      entries: result[:entries]
    }
  end
end