Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix: object analytics fetching after the new year change #19

Merged
merged 1 commit into from
Jan 1, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -134,6 +134,7 @@ GEM
google-cloud-env (2.1.0)
faraday (>= 1.0, < 3.a)
google-cloud-errors (1.3.1)
google-protobuf (3.25.1-x86_64-darwin)
google-protobuf (3.25.1-x86_64-linux)
googleapis-common-protos (1.4.0)
google-protobuf (~> 3.14)
Expand All @@ -151,6 +152,9 @@ GEM
grpc (1.60.0-x86_64-linux)
google-protobuf (~> 3.25)
googleapis-common-protos-types (~> 1.0)
grpc (1.60.0-x86_64-linux)
google-protobuf (~> 3.25)
googleapis-common-protos-types (~> 1.0)
htmlentities (4.3.4)
http-accept (1.7.0)
http-cookie (1.0.5)
Expand Down Expand Up @@ -251,6 +255,7 @@ GEM
webrick (1.8.1)

PLATFORMS
x86_64-darwin-23
x86_64-linux

DEPENDENCIES
Expand Down
12 changes: 8 additions & 4 deletions bin/import_google_ua_analytics_data
Original file line number Diff line number Diff line change
Expand Up @@ -41,9 +41,10 @@ module NcboCron
(start_year..Date.today.year).each do |y|
aggregated_results[acronym] = Hash.new if aggregated_results[acronym].nil?
aggregated_results[acronym][y.to_s] = Hash.new unless aggregated_results[acronym].has_key?(y.to_s)
# fill up non existent months with zeros
last_month = y.eql?(Date.today.year) ? Date.today.month : 12
(1..last_month).each { |n| aggregated_results[acronym][y.to_s][n.to_s] = 0 if aggregated_results[acronym][y.to_s].is_a?(Hash) && !aggregated_results[acronym][y.to_s].has_key?(n.to_s)}
end
# fill up non existent months with zeros
(1..12).each { |n| aggregated_results[acronym].values.each { |v| v[n.to_s] = 0 unless v.has_key?(n.to_s) } }
break
end
end
Expand Down Expand Up @@ -82,9 +83,12 @@ module NcboCron
(start_year..Date.today.year).each do |y|
aggregated_results = Hash.new if aggregated_results.nil?
aggregated_results[y.to_s] = Hash.new unless aggregated_results.has_key?(y.to_s)

# fill up non existent months with zeros
last_month = y.eql?(Date.today.year) ? Date.today.month.to_i : 12
(1..last_month).each { |n| aggregated_results[y.to_s][n.to_s] = 0 if aggregated_results[y.to_s].is_a?(Hash) && !aggregated_results[y.to_s].has_key?(n.to_s)}
end
# fill up non existent months with zeros
(1..12).each { |n| aggregated_results.values.each { |v| v[n.to_s] = 0 unless v.has_key?(n.to_s) } }

break
end
end
Expand Down
19 changes: 12 additions & 7 deletions lib/ncbo_cron/analytics/object_analytics.rb
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,8 @@ def merge_and_fill_missing_data(new_data, old_data,logger, start_date = @start_d
year = year.to_s
if new_data[acronym].has_key?(year)
if old_data[acronym].has_key?(year)
(1..Date.today.month).each do |month|
last_month = year.eql?(Date.today.year) ? Date.today.month : 12
(1..last_month).each do |month|
month = month.to_s
old_data[acronym][year][month] ||= 0
unless old_data[acronym][year][month].eql?(new_data[acronym][year][month])
Expand All @@ -144,9 +145,7 @@ def merge_and_fill_missing_data(new_data, old_data,logger, start_date = @start_d
logger.info "Filling in missing years data..."
old_data = fill_missing_data(old_data)
end

# sort_ga_data(old_data)
old_data
sort_ga_data(old_data)
end

def aggregate_results(aggregated_results, results)
Expand Down Expand Up @@ -179,16 +178,22 @@ def fill_missing_data(ga_data)
(start_year..Date.today.year).each do |y|
ga_data[acronym] = Hash.new if ga_data[acronym].nil?
ga_data[acronym][y.to_s] = Hash.new unless ga_data[acronym].has_key?(y.to_s)

# fill up non existent months with zeros
last_month = y.eql?(Date.today.year) ? Date.today.month.to_i : 12
(1..last_month).each { |n| ga_data[acronym][y.to_s][n.to_s] = 0 if ga_data[acronym][y.to_s].is_a?(Hash) && !ga_data[acronym][y.to_s].has_key?(n.to_s) }
end
# fill up non existent months with zeros
(1..12).each { |n| ga_data[acronym].values.each { |v| v[n.to_s] = 0 if v.is_a?(Hash) && !v.has_key?(n.to_s) } }
end
end

def sort_ga_data(ga_data)
ga_data.transform_values { |value|
value.transform_values { |val|
val.sort_by { |key, _| key.to_i }.to_h
if val.is_a?(Hash)
val.sort_by { |key, _| key.to_i }.to_h
else
val
end
}.sort_by { |k, _| k.to_i }.to_h
}.sort.to_h
end
Expand Down
4 changes: 2 additions & 2 deletions lib/ncbo_cron/analytics/page_visits_analytics.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
module NcboCron
module Models
class PageVisitsAnalytics < ObjectAnalytics
def initialize(start_date: Date.today.prev_month, old_data: {})
super(redis_field: 'pages_analytics', start_date: Date.today.prev_month, old_data: { })
def initialize(start_date: Date.today.prev_month.to_s, old_data: {})
super(redis_field: 'pages_analytics', start_date: Date.today.prev_month.to_s, old_data: { })
end

private
Expand Down