Class: Banacle::InteractiveMessage::Renderer

Inherits:
Object
  • Object
show all
Defined in:
lib/banacle/interactive_message/renderer.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request, config) ⇒ Renderer

Returns a new instance of Renderer.



14
15
16
17
# File 'lib/banacle/interactive_message/renderer.rb', line 14

def initialize(request, config)
  @request = request
  @config = config
end

Instance Attribute Details

#configObject (readonly)

Returns the value of attribute config.



19
20
21
# File 'lib/banacle/interactive_message/renderer.rb', line 19

def config
  @config
end

#requestObject (readonly)

Returns the value of attribute request.



19
20
21
# File 'lib/banacle/interactive_message/renderer.rb', line 19

def request
  @request
end

Class Method Details

.render_error(error) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/banacle/interactive_message/renderer.rb', line 6

def self.render_error(error)
  Slack::Response.new(
    response_type: "ephemeral",
    replace_original: false,
    text: "An error occurred: #{error}",
  ).to_json
end

Instance Method Details

#actioner_idObject



58
59
60
# File 'lib/banacle/interactive_message/renderer.rb', line 58

def actioner_id
  request.actioner_id
end

#original_message_textObject



54
55
56
# File 'lib/banacle/interactive_message/renderer.rb', line 54

def original_message_text
  request.original_message_text
end

#render_approved_message(result) ⇒ Object



21
22
23
24
25
26
27
28
29
30
# File 'lib/banacle/interactive_message/renderer.rb', line 21

def render_approved_message(result)
  text = original_message_text
  text += ":white_check_mark: *<@#{actioner_id}> approved this request*\n"
  text += "Result:\n"
  text += "```\n"
  text += result
  text += "```"

  render_replacing_message(text)
end

#render_cancelled_messageObject



39
40
41
42
43
44
# File 'lib/banacle/interactive_message/renderer.rb', line 39

def render_cancelled_message
  text = original_message_text
  text += "\nThe request was cancelled."

  render_replacing_message(text)
end

#render_rejected_messageObject



32
33
34
35
36
37
# File 'lib/banacle/interactive_message/renderer.rb', line 32

def render_rejected_message
  text = original_message_text
  text += ":no_entry_sign: *<@#{actioner_id}> rejected this request*"

  render_replacing_message(text)
end

#render_replacing_message(text) ⇒ Object



46
47
48
49
50
51
52
# File 'lib/banacle/interactive_message/renderer.rb', line 46

def render_replacing_message(text)
  Slack::Response.new(
    response_type: "in_channel",
    replace_original: true,
    text: text,
  ).to_json
end