Sha256: 3e5dfdcd24d758dd74eb906a84ee29d813b956c94c7662553004f289f1dc84cb
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
# frozen_string_literal: true module PUNK class IdentifySessionWorker < Worker args :session_id def validate validates_not_null :session_id validates_not_empty :session_id end def process require "userstack" session = Session[session_id] return if session.blank? return if PUNK.get.userstack.api_key.blank? client = Userstack::Client.new(PUNK.get.userstack.api_key, use_ssl: PUNK.get.userstack.use_ssl) result = client.parse(session.user_agent).deep_symbolize_keys raise if result[:success] == false || result[:type].nil? session.update(data: session.data.merge( os: { name: result[:os][:name], family: result[:os][:family], vendor: result[:os][:family_vendor] }, browser: { name: result[:browser][:name], version: result[:browser][:version] }, device: { name: result[:device][:name], brand: result[:device][:brand], type: result[:device][:type], mobile: result[:device][:is_mobile_device] } )) GeocodeSessionWorker.perform_now(session_id: session.id) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
punk-0.4.1 | lib/punk/workers/identify_session_worker.rb |