1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-11 22:24:21 +01:00
fab-manager/app/services/statistics/concerns/helpers_concern.rb
Sylvain fe419f295a (bug) erroneous statistics
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
2022-10-10 14:46:10 +02:00

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