From 50696de804fb9591cac8dbc45ec39a32823c17b0 Mon Sep 17 00:00:00 2001 From: yystopf Date: Tue, 21 Mar 2023 17:48:02 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=EF=BC=9Aheatmap=E6=97=A0?= =?UTF-8?q?=E6=B3=95=E6=AD=A3=E5=B8=B8=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/controllers/users/statistics_controller.rb | 10 +++++++--- app/services/gitea/user/headmap_service.rb | 7 ++++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/app/controllers/users/statistics_controller.rb b/app/controllers/users/statistics_controller.rb index 1948af9b3..417aecd17 100644 --- a/app/controllers/users/statistics_controller.rb +++ b/app/controllers/users/statistics_controller.rb @@ -4,7 +4,8 @@ class Users::StatisticsController < Users::BaseController # 近期活动统计 def activity date_range = (1.week.ago.to_date..Date.today).to_a - commit_request = Gitea::User::HeadmapService.call(observed_user.login, 1.week.ago.to_date.to_time.to_i, Date.today.to_time.to_i) + commit_request = Gitea::User::HeadmapService.call(observed_user.login, 1.week.ago.to_date.to_time.to_i, Date.today.end_of_day.to_time.to_i, observed_user.gitea_token) + puts commit_request commit_data = commit_request[2] @date_data = [] @issue_data = [] @@ -14,8 +15,11 @@ class Users::StatisticsController < Users::BaseController @date_data << date.strftime("%Y.%m.%d") @issue_data << observed_user.issues.issue_issue.where("DATE(created_on) = ?", date).size @pull_request_data << observed_user.pull_requests.where("DATE(created_at) = ?", date).size - date_commit_data = commit_data.blank? ? nil : commit_data.select{|item| item["timestamp"] == date.to_time.to_i} - @commit_data << (date_commit_data.blank? ? 0 : date_commit_data[0]["contributions"].to_i) + contribution = 0 + commit_data.each do |item| + contribution += item["contributions"] if Time.at(item["timestamp"]).strftime("%Y-%m-%d") == date.to_s + end + @commit_data << contribution end render :json => {dates: @date_data, issues_count: @issue_data, pull_requests_count: @pull_request_data, commits_count: @commit_data} end diff --git a/app/services/gitea/user/headmap_service.rb b/app/services/gitea/user/headmap_service.rb index d066d0f16..eef8e21a9 100644 --- a/app/services/gitea/user/headmap_service.rb +++ b/app/services/gitea/user/headmap_service.rb @@ -1,10 +1,11 @@ class Gitea::User::HeadmapService < Gitea::ClientService - attr_reader :start_time, :end_time, :username + attr_reader :start_time, :end_time, :username, :token - def initialize(username, start_time, end_time) + def initialize(username, start_time, end_time, token=nil) @username = username @start_time = start_time @end_time = end_time + @token = token end def call @@ -14,7 +15,7 @@ class Gitea::User::HeadmapService < Gitea::ClientService private def params - Hash.new.merge(start: start_time, end: end_time) + Hash.new.merge(start: start_time, end: end_time, token: token) end def url