forgeplus/app/models/message_template/project_milestone.rb

73 lines
3.1 KiB
Ruby
Raw Permalink Normal View History

2021-09-09 16:32:13 +08:00
# == Schema Information
#
# Table name: message_templates
#
2021-09-14 17:39:58 +08:00
# id :integer not null, primary key
# type :string(255)
# sys_notice :text(65535)
# email :text(65535)
# created_at :datetime not null
# updated_at :datetime not null
# notification_url :string(255)
2021-09-24 15:37:55 +08:00
# email_title :string(255)
2021-09-09 16:32:13 +08:00
#
2022-02-15 17:13:06 +08:00
# 我管理的仓库有新的里程碑
2021-09-09 16:32:13 +08:00
class MessageTemplate::ProjectMilestone < MessageTemplate
2021-09-14 23:04:33 +08:00
# MessageTemplate::ProjectMilestone.get_message_content(User.where(login: 'yystopf'))
2022-02-15 17:13:06 +08:00
def self.get_message_content(receivers, operator, milestone)
receivers.each do |receiver|
if receiver.user_template_message_setting.present?
send_setting = receiver.user_template_message_setting.notification_body["ManageProject::Milestone"]
send_setting = send_setting.nil? ? UserTemplateMessageSetting.init_notification_body["ManageProject::Milestone"] : send_setting
2022-02-15 17:13:06 +08:00
receivers = receivers.where.not(id: receiver.id) unless receiver.user_template_message_setting.notification_body["ManageProject::Milestone"]
end
end
return '', '', '' if receivers.blank?
project = milestone&.project
owner = project&.owner
content = sys_notice.gsub('{nickname1}', operator&.real_name).gsub('{nickname2}', owner&.real_name).gsub('{repository}', project&.name).gsub('{name}', milestone&.name)
url = notification_url.gsub('{owner}', owner&.login).gsub('{identifier}', project&.identifier).gsub('{id}', milestone&.id.to_s)
2021-09-14 23:04:33 +08:00
return receivers_string(receivers), content, url
rescue => e
Rails.logger.info("MessageTemplate::ProjectMilestone.get_message_content [ERROR] #{e}")
return '', '', ''
end
2022-02-15 17:13:06 +08:00
def self.get_email_message_content(receiver, operator, milestone)
if receiver.user_template_message_setting.present?
send_setting = receiver.user_template_message_setting.email_body["ManageProject::Milestone"]
send_setting = send_setting.nil? ? UserTemplateMessageSetting.init_email_body["ManageProject::Milestone"] : send_setting
return '', '', '' unless send_setting
2022-02-15 17:13:06 +08:00
project = milestone&.project
owner = project&.owner
title = email_title
title.gsub!('{nickname1}', operator&.real_name)
title.gsub!('{nickname2}', owner&.real_name)
title.gsub!('{repository}', project&.name)
content = email
content.gsub!('{receiver}', receiver&.real_name)
content.gsub!('{baseurl}', base_url)
content.gsub!('{nickname1}', operator&.real_name)
content.gsub!('{nickname2}', owner&.real_name)
content.gsub!('{repository}', project&.name)
content.gsub!('{login}', owner&.login)
2022-02-15 17:13:06 +08:00
content.gsub!('{identifier}', project&.identifier)
content.gsub!('{id}', milestone&.id.to_s)
content.gsub!('{name}', milestone&.name)
2022-02-15 18:30:13 +08:00
content.gsub!('{platform}', PLATFORM)
2022-02-15 17:13:06 +08:00
return receiver&.mail, title, content
else
return '', '', ''
end
rescue => e
Rails.logger.info("MessageTemplate::ProjectMilestone.get_email_message_content [ERROR] #{e}")
return '', '', ''
end
2021-09-09 16:32:13 +08:00
end