class SplitIoClient::Cache::Repositories::EventsRepository

Repository which forwards events interface to the selected adapter

def event(key, traffic_type, event_type, time, value, properties)

def event(key, traffic_type, event_type, time, value, properties)
  {
    key: key,
    trafficTypeName: traffic_type,
    eventTypeId: event_type,
    value: value,
    timestamp: time,
    properties: properties
  }.reject { |_, v| v.nil? }
end

def events_api

def events_api
  @events_api ||= SplitIoClient::Api::Events.new(@api_key, @config, @telemetry_runtime_producer)
end

def initialize(config, api_key, telemetry_runtime_producer)

def initialize(config, api_key, telemetry_runtime_producer)
  super(config)
  @repository = case @config.events_adapter.class.to_s
  when 'SplitIoClient::Cache::Adapters::MemoryAdapter'
    Repositories::Events::MemoryRepository.new(@config, telemetry_runtime_producer)
  when 'SplitIoClient::Cache::Adapters::RedisAdapter'
    Repositories::Events::RedisRepository.new(@config)
  end
  @api_key = api_key
  @telemetry_runtime_producer = telemetry_runtime_producer
end

def metadata

def metadata
  {
    s: "#{@config.language}-#{@config.version}",
    i: @config.machine_ip,
    n: @config.machine_name
  }
end

def post_events

def post_events
  events_api.post(self.clear)
rescue StandardError => e
  @config.log_found_exception(__method__.to_s, e)
end