mirror of
https://github.com/LaCasemate/fab-manager.git
synced 2024-12-13 23:48:55 +01:00
fe419f295a
The date of the statistics data was using the date of the regenerate command parameter. This was ok for the nightly builds but definitly not for bulk regeneration
52 lines
1.3 KiB
Ruby
52 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# module grouping all statistics concerns
|
|
module Statistics::Concerns; end
|
|
|
|
# Provides various helpers for services dealing with statistics generation
|
|
module Statistics::Concerns::HelpersConcern
|
|
extend ActiveSupport::Concern
|
|
|
|
class_methods do
|
|
def default_options
|
|
yesterday = 1.day.ago
|
|
{
|
|
start_date: yesterday.beginning_of_day,
|
|
end_date: yesterday.end_of_day
|
|
}
|
|
end
|
|
|
|
def format_date(date)
|
|
to_date(date).strftime('%Y-%m-%d')
|
|
end
|
|
|
|
def to_date(date)
|
|
if date.is_a?(String)
|
|
Date.strptime(date, '%Y%m%d')
|
|
else
|
|
date
|
|
end
|
|
end
|
|
|
|
def user_info_stat(stat)
|
|
{
|
|
userId: stat[:user_id],
|
|
gender: stat[:gender],
|
|
age: stat[:age],
|
|
group: stat[:group]
|
|
}
|
|
end
|
|
|
|
def difference_in_hours(start_at, end_at)
|
|
if start_at.to_date == end_at.to_date
|
|
((end_at - start_at) / 60 / 60).to_i
|
|
else
|
|
end_at_to_start_date = end_at.change(year: start_at.year, month: start_at.month, day: start_at.day)
|
|
hours = ((end_at_to_start_date - start_at) / 60 / 60).to_i
|
|
hours = ((end_at.to_date - start_at.to_date).to_i + 1) * hours if end_at.to_date > start_at.to_date
|
|
hours
|
|
end
|
|
end
|
|
end
|
|
end
|