forgeplus/app/controllers/users/headmaps_controller.rb

36 lines
1.0 KiB
Ruby

class Users::HeadmapsController < Users::BaseController
def index
result = Gitea::User::HeadmapService.call(observed_user.login, start_stamp, end_stamp, observed_user&.gitea_token)
@headmaps = result[2].blank? ? [] : result[2]
headmaps_result = {}
@headmaps.each do |entry|
date = Time.at(entry["timestamp"]).strftime("%Y-%m-%d")
if headmaps_result[date].nil?
headmaps_result[date] = { "contributions" => entry["contributions"] }
else
headmaps_result[date]["contributions"] += entry["contributions"]
end
end
@headmaps = headmaps_result
rescue Exception => e
uid_logger_error(e.message)
tip_exception(e.message)
end
private
def start_stamp
if params[:year].present?
Date.new(params[:year].to_i, 1).to_time.to_i
else
(Date.today - 1.years).to_time.to_i
end
end
def end_stamp
if params[:year].present?
(Date.new(params[:year].to_i, 1) + 1.years).to_time.end_of_day.to_i
else
Date.today.to_time.end_of_day.to_i
end
end
end