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