diff --git a/app/jobs/touch_webhook_job.rb b/app/jobs/touch_webhook_job.rb index 514fa6950..0446b8f4a 100644 --- a/app/jobs/touch_webhook_job.rb +++ b/app/jobs/touch_webhook_job.rb @@ -8,7 +8,8 @@ class TouchWebhookJob < ApplicationJob issue = Issue.find_by_id issue_id sender = User.find_by_id sender_id return if issue.nil? || sender.nil? - issue.project.webhooks.each do |webhook| + return if issue.project.nil? + issue.project.webhooks.each do |webhook| next unless webhook.events["events"]["issues"] _, _, @webhook_task = Webhook::IssueClient.new(webhook, issue, sender,"issues").do_request Rails.logger.info "Touch Webhook Response result: #{@webhook_task.response_content}" @@ -18,6 +19,7 @@ class TouchWebhookJob < ApplicationJob issue = Issue.find_by_id issue_id sender = User.find_by_id sender_id return if issue.nil? || sender.nil? || !changes.is_a?(Hash) || changes.blank? + return if issue.project.nil? issue.project.webhooks.each do |webhook| next unless webhook.events["events"]["issues"] _, _, @webhook_task = Webhook::IssueClient.new(webhook, issue, sender, "issues", changes.stringify_keys).do_request @@ -29,6 +31,7 @@ class TouchWebhookJob < ApplicationJob issue = Issue.find_by_id issue_id sender = User.find_by_id sender_id return if issue.nil? || sender.nil? + return if issue.project.nil? issue.project.webhooks.each do |webhook| next unless webhook.events["events"]["issue_assign"] _, _, @webhook_task = Webhook::IssueClient.new(webhook, issue, sender, "issue_assign", changes.stringify_keys).do_request @@ -39,7 +42,8 @@ class TouchWebhookJob < ApplicationJob issue_id, sender_id, changes = args[0], args[1], args[2] issue = Issue.find_by_id issue_id sender = User.find_by_id sender_id - return if issue.nil? || sender.nil? + return if issue.nil? || sender.nil? + return if issue.project.nil? issue.project.webhooks.each do |webhook| next unless webhook.events["events"]["issue_label"] _, _, @webhook_task = Webhook::IssueClient.new(webhook, issue, sender, "issue_label", changes.stringify_keys).do_request @@ -53,6 +57,7 @@ class TouchWebhookJob < ApplicationJob return if issue.nil? || sender.nil? comment = issue.comment_journals.find_by_id comment_id return if action_type == 'edited' && comment_json.blank? + return if issue.project.nil? issue.project.webhooks.each do |webhook| next unless webhook.events["events"]["issue_comment"] @@ -68,6 +73,7 @@ class TouchWebhookJob < ApplicationJob return if issue.nil? || pull.nil? || sender.nil? comment = issue.comment_journals.find_by_id comment_id return if action_type == 'edited' && comment_json.blank? + return if issue.project.nil? pull.project.webhooks.each do |webhook| next unless webhook.events["events"]["pull_request_comment"] diff --git a/app/services/api/v1/issues/update_service.rb b/app/services/api/v1/issues/update_service.rb index 4b8961854..6d2bbedf0 100644 --- a/app/services/api/v1/issues/update_service.rb +++ b/app/services/api/v1/issues/update_service.rb @@ -85,6 +85,10 @@ class Api::V1::Issues::UpdateService < ApplicationService @updated_issue.root_id = @root_id unless @root_id.nil? #不为 nil的时候更新 @updated_issue.root_id = nil if @root_id.try(:zero?) #为 0 的时候设置为 nil @updated_issue.time_scale = @time_scale unless @time_scale.nil? + if @project_id.present? && @project_id.to_i == 0 + add_project = Project.find_by(id: @project_id) + @updated_issue.project_issues_index = add_project.get_last_project_issues_index + 1 if add_project.present? + end @updated_issue.project_id = @project_id unless @project_id.nil? @updated_issue.updated_on = Time.now @updated_issue.changer_id = @current_user.id