Class: Hackle::UserEventSerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/hackle/internal/event/user_event_dispatcher.rb

Instance Method Summary collapse

Instance Method Details

#exposure_event(event) ⇒ Hash

Parameters:

Returns:

  • (Hash)


95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/hackle/internal/event/user_event_dispatcher.rb', line 95

def exposure_event(event)
  {
    insertId: event.insert_id,
    timestamp: event.timestamp,

    userId: event.user.identifiers['$id'],
    identifiers: event.user.identifiers,
    userProperties: event.user.properties,
    hackleProperties: {},

    experimentId: event.experiment.id,
    experimentKey: event.experiment.key,
    experimentType: event.experiment.type.name,
    experimentVersion: event.experiment.version,
    variationId: event.variation_id,
    variationKey: event.variation_key,
    decisionReason: event.decision_reason,
    properties: event.properties
  }
end

#remote_config_event(event) ⇒ Hash

Parameters:

Returns:

  • (Hash)


137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/hackle/internal/event/user_event_dispatcher.rb', line 137

def remote_config_event(event)
  {
    insertId: event.insert_id,
    timestamp: event.timestamp,

    userId: event.user.identifiers['$id'],
    identifiers: event.user.identifiers,
    userProperties: event.user.properties,
    hackleProperties: {},

    parameterId: event.parameter.id,
    parameterKey: event.parameter.key,
    parameterType: event.parameter.type.name,
    valueId: event.value_id,
    decisionReason: event.decision_reason,
    properties: event.properties
  }
end

#serialize(events) ⇒ Hash

Parameters:

Returns:

  • (Hash)


76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
# File 'lib/hackle/internal/event/user_event_dispatcher.rb', line 76

def serialize(events)
  exposure_events = []
  track_events = []
  remote_config_events = []

  events.each do |event|
    exposure_events << exposure_event(event) if event.is_a? ExposureEvent
    track_events << track_event(event) if event.is_a? TrackEvent
    remote_config_events << remote_config_event(event) if event.is_a? RemoteConfigEvent
  end
  {
    exposureEvents: exposure_events,
    trackEvents: track_events,
    remoteConfigEvents: remote_config_events
  }
end

#track_event(event) ⇒ Hash

Parameters:

Returns:

  • (Hash)


118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
# File 'lib/hackle/internal/event/user_event_dispatcher.rb', line 118

def track_event(event)
  {
    insertId: event.insert_id,
    timestamp: event.timestamp,

    userId: event.user.identifiers['$id'],
    identifiers: event.user.identifiers,
    userProperties: event.user.properties,
    hackleProperties: {},

    eventTypeId: event.event_type.id,
    eventTypeKey: event.event_type.key,
    value: event.event.value,
    properties: event.event.properties
  }
end