Class: Konekt::Event

Inherits:
Object
  • Object
show all
Defined in:
lib/konekt/event.rb

Defined Under Namespace

Classes: InvalidEventData

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(opts = {}) ⇒ Event

Returns a new instance of Event.



44
45
46
47
48
49
50
51
52
53
# File 'lib/konekt/event.rb', line 44

def initialize(opts={})
  @tags = opts[:tags]
  @data = opts[:data]
  @received_at = opts[:received_at] || Time.now.utc
  @source = opts[:source]
  @device_name = opts[:device_name]
  @user_id = opts[:user_id]
  @payload = opts[:payload]
  @properties = opts[:properties]
end

Class Method Details

.from_params(params) ⇒ Object



19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/konekt/event.rb', line 19

def self.from_params(params)
  attrs       = JSON.parse params['payload']
  tags        = attrs.fetch('tags')
  data        = Base64.decode64(attrs.fetch('data'))
  received_at = Time.parse(attrs.fetch('received'))
  source      = attrs.fetch('source')
  device_name = attrs.fetch('device_name')
  user_id     = params['userid']
  properties  = JSON.parse params['properties']

  event = { tags: tags,
    data: data,
    received_at: received_at,
    source: source,
    device_name: device_name,
    user_id: user_id,
    payload: attrs,
    properties: properties,
  }
  new event

rescue ArgumentError, KeyError, JSON::JSONError => e
  raise InvalidEventData, e
end