Class: Banacle::InteractiveMessage::Request

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

Constant Summary collapse

REQUESTER_ID_REGEX =
/\A<@([^>]+)>/.freeze

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(request) ⇒ Request

Returns a new instance of Request.



6
7
8
# File 'lib/banacle/interactive_message/request.rb', line 6

def initialize(request)
  @request = request
end

Instance Attribute Details

#requestObject (readonly)

Returns the value of attribute request.



10
11
12
# File 'lib/banacle/interactive_message/request.rb', line 10

def request
  @request
end

Instance Method Details

#actionObject



12
13
14
# File 'lib/banacle/interactive_message/request.rb', line 12

def action
  Slack::Action.new(payload["actions"].first)
end

#actioner_idObject



24
25
26
# File 'lib/banacle/interactive_message/request.rb', line 24

def actioner_id
  payload["user"]["id"]
end

#original_message_textObject



28
29
30
# File 'lib/banacle/interactive_message/request.rb', line 28

def original_message_text
  payload["original_message"]["text"]
end

#payloadObject



32
33
34
# File 'lib/banacle/interactive_message/request.rb', line 32

def payload
  @payload ||= JSON.parse(request.params["payload"])
end

#requester_idObject



20
21
22
# File 'lib/banacle/interactive_message/request.rb', line 20

def requester_id
  original_message_text.match(REQUESTER_ID_REGEX)[1]
end

#self_actioned?Boolean

Returns:

  • (Boolean)


16
17
18
# File 'lib/banacle/interactive_message/request.rb', line 16

def self_actioned?
  requester_id == actioner_id
end