Class: TrackApi

Inherits:
Object
  • Object
show all
Defined in:
lib/wingify/api/track_event.rb

Instance Method Summary collapse

Instance Method Details

#track(settings, event_name, context, event_properties, hooks_service) ⇒ Hash

Tracks an event with given properties and context.

Parameters:

  • settings (SettingsModel)

    Configuration settings.

  • event_name (String)

    Name of the event to track.

  • context (ContextModel)

    Contextual information like user details.

  • event_properties (Hash)

    Properties associated with the event.

  • hooks_service (HooksService)

    Manager for handling hooks and callbacks.

Returns:

  • (Hash)

    A hash indicating success or failure of event tracking.



32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/wingify/api/track_event.rb', line 32

def track(settings, event_name, context, event_properties, hooks_service)
  if does_event_belong_to_any_feature(event_name, settings)
    # Create an impression for the track event
    create_impression_for_track(event_name, context, event_properties)

    # Set and execute integration callback for the track event
    hooks_service.set({ event_name: event_name, api: ApiEnum::TRACK_EVENT })
    hooks_service.execute(hooks_service.get)

    return { event_name: true }
  end

  # Log an error if the event does not exist
  LoggerService.log(LogLevelEnum::ERROR, "EVENT_NOT_FOUND", { eventName: event_name, an: ApiEnum::TRACK_EVENT, sId: context.get_session_id, uuid: context.get_uuid})

  { event_name: false }
end