module Hawkei
Implementation of the Hawkei
Constants
- GROUP_EVENTS_CREATE
- IDENTIFY_EVENTS_CREATE
- TRACK_EVENTS_CREATE
- WATCHERS_CREATE_ACTION
Attributes
@return [Hawkei::Config] configurations
Public Class Methods
Configures the Hawkei
API
@example Default configuration
Hawkei.configure do |config| config.api_key = 'acc_xx' config.space_name = 'Hawkei' config.environment_name = 'production' end
# File lib/hawkei.rb, line 64 def configure yield @configurations = Hawkei::Config.new Hawkei.configurations.valid! end
Send a create/update for a group
@param [String] group id from your database @param [Hash] payload to be send @param [Hash] options for the request
@return [Boolean] status of the request
# File lib/hawkei.rb, line 128 def group(group_id, payload = {}, options = {}) return true unless configurations.enabled payload = Message.base.merge(payload) payload[:group_id] = group_id processor.enqueue( action: GROUP_EVENTS_CREATE, payload: payload, options: options.select { |k, _v| %i[space_name environment_name].include?(k) }, ) end
Send an identify event to the server
@param [String] user id from your database @param [Hash] payload to be send @param [Hash] options for the request
@return [Boolean] status of the request
# File lib/hawkei.rb, line 105 def identify(user_id, payload = {}, options = {}) return true unless configurations.enabled payload[:user_id] = user_id Hawkei::Plugins::Rails::Data.store_data if defined?(Hawkei::Plugins::Rails::Data) payload = Message.extended.merge(payload) processor.enqueue( action: IDENTIFY_EVENTS_CREATE, payload: payload, options: options.select { |k, _v| %i[space_name environment_name].include?(k) }, ) end
Send a track event to the server
@param [String] event name @param [Hash] payload to be send @param [Hash] options for the request
@return [Boolean] status of the request
# File lib/hawkei.rb, line 78 def track(name, payload = {}, options = {}) return true unless configurations.enabled payload = { name: name, type: 'track', }.merge(payload) Hawkei::Plugins::Rails::Data.store_data if defined?(Hawkei::Plugins::Rails::Data) payload = Message.extended.merge(payload) processor.enqueue( action: TRACK_EVENTS_CREATE, payload: payload, options: options.select { |k, _v| %i[space_name environment_name].include?(k) }, ) end
Send a create a watcher
@param [String|Integer] template hawkei name or id @param [Hash] payload to be send @param [Hash] options for the request
@return [Boolean|Watcher] status of the request
# File lib/hawkei.rb, line 149 def watch(flow, payload = {}, options = {}) return true unless configurations.enabled payload[:template_flow] = flow payload = Message.base.merge(payload) payload.delete(:session_tracker_id) if payload.delete(:without_session) if options[:sync] Watcher.create(payload, options) else processor.enqueue( action: WATCHERS_CREATE_ACTION, payload: payload, options: options.select { |k, _v| %i[space_name environment_name].include?(k) }, ) end end
Private Class Methods
# File lib/hawkei.rb, line 170 def processor @processor ||= Processor::Async.new end