1
0
mirror of https://github.com/LaCasemate/fab-manager.git synced 2024-12-13 23:48:55 +01:00
fab-manager/app/services/statistics/concerns/helpers_concern.rb
2023-01-31 17:10:07 +01: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) / 3600.0).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