Skip to content

Commit

Permalink
fix the object analytics fetching after the new year change (#19)
Browse files Browse the repository at this point in the history
  • Loading branch information
syphax-bouazzouni authored Jan 1, 2024
1 parent b1f6039 commit 10e7b66
Show file tree
Hide file tree
Showing 4 changed files with 27 additions and 13 deletions.
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

0 comments on commit 10e7b66

Please sign in to comment.