Method: Algometrics::Client#track

Defined in:
lib/algometrics/client.rb

#track(event:, actor:, status: Algometrics::SUCCESS) ⇒ Object



56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
# File 'lib/algometrics/client.rb', line 56

def track(event:, actor:, status: Algometrics::SUCCESS)
  unless valid_actor?(actor)
    Algometrics::Client.logger.error("Algometrics client error: invalid actor: '#{actor}' " \
                                     "actor type and id must be of the following format: /\\A[\\w\\- ]+\\z/")
    return
  end

  unless valid_event_name?(event)
    Algometrics::Client.logger.error("Algometrics client error: invalid event name: '#{event}' " \
                                     "event name must be of the following format: /\\A[\\w\\- ]+\\z/")
    return
  end

  actor = parse_actor(actor)

  data = {
    event: event,
    actor: actor,
    status: [Algometrics::SUCCESS, Algometrics::FAILURE].include?(status) ? status : Algometrics::SUCCESS
  }

  connection.post("#{api_version}/events", data.to_json)
end