Class: Rabbit::Receiving::Message

Inherits:
Object
  • Object
show all
Includes:
Tainbox
Defined in:
lib/rabbit/receiving/message.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.build(message, arguments) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/rabbit/receiving/message.rb', line 19

def self.build(message, arguments)
  group_id, project_id = arguments.fetch(:app_id).split(".")

  new(
    group_id: group_id,
    project_id: project_id,
    event: arguments.fetch(:type),
    data: message,
    message_id: arguments.fetch(:message_id, nil),
    arguments: arguments,
  )
end

Instance Method Details

#data=(value) ⇒ Object



32
33
34
35
36
37
# File 'lib/rabbit/receiving/message.rb', line 32

def data=(value)
  self.original_message = value
  super(JSON.parse(value).deep_symbolize_keys)
rescue JSON::ParserError => error
  mark_as_malformed!("JSON::ParserError: #{error.message}")
end

#mark_as_malformed!(errors = "Error not specified") ⇒ Object



39
40
41
# File 'lib/rabbit/receiving/message.rb', line 39

def mark_as_malformed!(errors = "Error not specified")
  MalformedMessage.raise!(self, errors, caller(1))
end