Sha256: dfa606c146a82b2c5692466ae8c52ef3cf35be53d86ad24c0e7d416067b8f219
Contents?: true
Size: 1.94 KB
Versions: 1
Compression:
Stored size: 1.94 KB
Contents
require 'openurl' module IrusAnalytics class IrusAnalyticsService attr_accessor :irus_server_address def initialize(irus_server_address) @irus_server_address = irus_server_address @missing_params = [] end def send_analytics(params = {}) if @irus_server_address.to_s.empty? raise ArgumentError, "Cannot send analytics: Missing Irus server address" end default_params = {date_stamp: "", client_ip_address: "", user_agent: "", item_oai_identifier: "", file_url: "", http_referer: "", source_repository: ""} params = default_params.merge(params) if missing_mandatory_params?(params) raise ArgumentError, "Missing the following required params: #{@missing_params}" end tracker_context_object_builder = IrusAnalytics::TrackerContextObjectBuilder.new tracker_context_object_builder.set_event_datestamp(params[:date_stamp]) tracker_context_object_builder.set_client_ip_address(params[:client_ip_address]) tracker_context_object_builder.set_user_agent(params[:user_agent]) tracker_context_object_builder.set_oai_identifier(params[:item_oai_identifier]) tracker_context_object_builder.set_file_url(params[:file_url]) tracker_context_object_builder.set_http_referer(params[:http_referer]) tracker_context_object_builder.set_source_repository(params[:source_repository]) transport = openurl_link_resolver(tracker_context_object_builder.context_object) transport.get if transport.code != "200" raise "Unexpected response from IRUS server" end end # At present, all the params, are mandatory... def missing_mandatory_params?(params) params.each_pair { |key,value| @missing_fields << key if value.to_s.empty? } return !@missing_params.empty? end def openurl_link_resolver(context_object) OpenURL::Transport.new(@irus_server_address, context_object) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
irus_analytics-0.0.1 | lib/irus_analytics/irus_analytics_service.rb |