fix issue webhook error

This commit is contained in:
chenjing
2023-04-13 17:21:09 +08:00
parent a69e4e5014
commit 1e7cffd716
6 changed files with 62 additions and 9 deletions

View File

@@ -79,13 +79,13 @@ class Api::V1::Issues::UpdateService < ApplicationService
SendTemplateMessageJob.perform_later('IssueAssigned', current_user.id, @issue&.id, add_assigner_ids) unless add_assigner_ids.blank?
end
unlock("Api::V1::Issues::UpdateService:#{project.id}:#{issue.id}")
# 触发webhook
Rails.logger.info "################### 触发webhook"
TouchWebhookJob.set(wait: 5.seconds).perform_later('IssueUpdate', @updated_issue&.id, current_user.id, previous_issue_changes.except(:issue_tags_value, :assigned_to_id))
TouchWebhookJob.set(wait: 5.seconds).perform_later('IssueLabel', @issue&.id, current_user.id, {issue_tag_ids: [before_issue_tag_ids, issue_tag_ids]}) unless issue_tag_ids.nil?
TouchWebhookJob.set(wait: 5.seconds).perform_later('IssueAssign', @issue&.id, current_user.id, {assigner_ids: [before_assigner_ids, assigner_ids]}) unless assigner_ids.nil?
unlock("Api::V1::Issues::UpdateService:#{project.id}:#{issue.id}")
return @updated_issue
end
end

View File

@@ -82,7 +82,7 @@ class Webhook::IssueClient
before_assigners = User.where(id: @changes["assigner_ids"][0])
after_assigners = User.where(id: @changes["assigner_ids"][1])
@changes["assigners"] = []
@changes["assigners"].append(before_assigners.blank? ? [] : before_assigners.map{|a|JSON.parse(a.to_buidler.target!)})
@changes["assigners"].append(before_assigners.blank? ? [] : before_assigners.map{|a|JSON.parse(a.to_builder.target!)})
@changes["assigners"].append(after_assigners.blank? ? [] : after_assigners.map{|a|JSON.parse(a.to_builder.target!)})
@changes.delete("assigner_ids")
end