diff --git a/app/models/message_template.rb b/app/models/message_template.rb index bee4ebae6..6c5e4df22 100644 --- a/app/models/message_template.rb +++ b/app/models/message_template.rb @@ -18,14 +18,14 @@ class MessageTemplate {nickname2}/{repository}指派给你一个易修:{title}', notification_url: '{baseurl}/{owner}/{identifier}/issues/{id}') self.create(type: 'MessageTemplate::IssueAssignerExpire', sys_notice: '您负责的易修{title}已临近截止日期,请尽快处理', notification_url: '{baseurl}/{owner}/{identifier}/issues/{id}') self.create(type: 'MessageTemplate::IssueAtme', sys_notice: '{nickname}在易修{title}中@我', notification_url: '{baseurl}/{owner}/{identifier}/issues/{id}') - self.create(type: 'MessageTemplate::IssueChanged', sys_notice: '在项目{nickname2}/{repository1}的易修{title}中:{ifassigner}{nickname1}将负责人从{assigner1}修改为{assigner1}{endassigner}
{ifstatus}{nickname1}将状态从{status1}修改为{status1}{endstatus}
{iftracker}{nickname1}将类型从{tracker1}修改为{tracker1}{endtracker}
{ifpriority}{nickname1}将优先度从{priority1}修改为{priority1}{endpriority}
{ifmilestone}{nickname1}将里程碑从{milestone1}修改为{milestone1}{endmilestone}
{iftag}{nickname1}将标签从{tag1}修改为{tag1}{endtag}
{ifdoneratio}{nickname1}将完成度从{doneratio1}修改为{doneratio1}{enddoneratio}
{ifbranch}{nickname1}将指定分支从{branch1}修改为{branch1}{endbranch}
{ifstartdate}{nickname1}将开始日期从{startdate1}修改为{startdate1}{endstartdate}
{ifduedate}{nickname1}将结束日期从{duedate1}修改为{duedate1}{endduedate}', notification_url: '{baseurl}/{owner}/{identifier}/issues/{id}') + self.create(type: 'MessageTemplate::IssueChanged', sys_notice: '在项目{nickname2}/{repository}的易修{title}中:{ifassigner}{nickname1}将负责人从{assigner1}修改为{assigner2}
{endassigner}{ifstatus}{nickname1}将状态从{status1}修改为{status2}
{endstatus}{iftracker}{nickname1}将类型从{tracker1}修改为{tracker2}
{endtracker}{ifpriority}{nickname1}将优先级从{priority1}修改为{priority2}
{endpriority}{ifmilestone}{nickname1}将里程碑从{milestone1}修改为{milestone2}
{endmilestone}{iftag}{nickname1}将标签从{tag1}修改为{tag2}
{endtag}{ifdoneratio}{nickname1}将完成度从{doneratio2}修改为{doneratio1}{enddoneratio}
{ifbranch}{nickname1}将指定分支从{branch1}修改为{branch2}
{endbranch}{ifstartdate}{nickname1}将开始日期从{startdate1}修改为{startdate2}
{endstartdate}{ifduedate}{nickname1}将结束日期从{duedate1}修改为{duedate2}
{endduedate}', notification_url: '{baseurl}/{owner}/{identifier}/issues/{id}') self.create(type: 'MessageTemplate::IssueCreatorExpire', sys_notice: '您发布的易修{title}已临近截止日期,请尽快处理', notification_url: '{baseurl}/{owner}/{identifier}/issues/{id}') self.create(type: 'MessageTemplate::IssueDeleted', sys_notice: '{nickname}已将易修{title}删除', notification_url: '') self.create(type: 'MessageTemplate::IssueJournal', sys_notice: '{nickname}评论易修{title}:{notes}', notification_url: '{baseurl}/{owner}/{identifier}/issues/{id}') self.create(type: 'MessageTemplate::LoginIpTip', sys_notice: '您的账号{nickname}于{login_time)在非常用的IP地址{ip}登录,如非本人操作,请立即修改密码', notification_url: '') self.create(type: 'MessageTemplate::OrganizationJoined', sys_notice: '你已加入{organization}组织', notification_url: '{baseurl}/{login}') self.create(type: 'MessageTemplate::OrganizationLeft', sys_notice: '你已被移出{organization}组织', notification_url: '') - self.create(type: 'MessageTemplate::OrganizationRole', sys_notice: '组织{organization}已把你的角色改为{role}', notification_url: '{baseurl}/{owner}') + self.create(type: 'MessageTemplate::OrganizationRole', sys_notice: '组织{organization}已把你的角色改为{role}', notification_url: '{baseurl}/{login}') self.create(type: 'MessageTemplate::ProjectDeleted', sys_notice: '你关注的仓库{nickname}/{repository}已被删除', notification_url: '') self.create(type: 'MessageTemplate::ProjectFollowed', sys_notice: '{nickname}关注了你管理的仓库', notification_url: '{baseurl}/{login}') self.create(type: 'MessageTemplate::ProjectForked', sys_notice: '{nickname1}复刻了你管理的仓库{nickname1}/{repository1}到{nickname2}/{repository2}', notification_url: '{baseurl}/{owner}/{identifier}') @@ -43,8 +43,8 @@ class MessageTemplate {nickname2}/{repository}
创建了发行版:{title}', notification_url: '{baseurl}/{owner}/{identifier}/releases') self.create(type: 'MessageTemplate::PullRequestAssigned', sys_notice: '{nickname1}在{nickname2}/{repository}指派给你一个合并请求:{title}', notification_url: '{baseurl}/{owner}/{identifier}/pulls/{id}/Messagecount') self.create(type: 'MessageTemplate::PullRequestAtme', sys_notice: '{nickname}在合并请求{title}中@我', notification_url: '{baseurl}/{owner}/{identifier}/pulls/{id}/Messagecount') - self.create(type: 'MessageTemplate::PullRequestChanged', sys_notice: '在项目{nickname2}/{repository1}的合并请求{title}中:{ifassigner}{nickname1}将审查成员从{assigner1}修改为{assigner1}{endassigner}
{ifmilestone}{nickname1}将里程碑从{milestone1}修改为{milestone1}{endmilestone}
{iftag}{nickname1}将标签从{tag1}修改为{tag1}{endtag}
{ifpriority}{nickname1}将优先度从{priority1}修改为{priority1}{endpriority}
', notification_url: '{baseurl}/{owner}/{identifier}/pulls/{id}/Messagecount') - self.create(type: 'MessageTemplate::PullRequestClosed', sys_notice: '你提交的合并请求:{title]被拒绝', notification_url: '') + self.create(type: 'MessageTemplate::PullRequestChanged', sys_notice: '在项目{nickname2}/{repository}的合并请求{title}中:{ifassigner}{nickname1}将审查成员从{assigner1}修改为{assigner2}
{endassigner}{ifmilestone}{nickname1}将里程碑从{milestone1}修改为{milestone2}
{endmilestone}{iftag}{nickname1}将标签从{tag1}修改为{tag2}
{endtag}{ifpriority}{nickname1}将优先级从{priority1}修改为{priority2}
{endpriority}', notification_url: '{baseurl}/{owner}/{identifier}/pulls/{id}/Messagecount') + self.create(type: 'MessageTemplate::PullRequestClosed', sys_notice: '你提交的合并请求:{title}被拒绝', notification_url: '') self.create(type: 'MessageTemplate::PullRequestJournal', sys_notice: '{nickname}评论合并请求{title}:{notes}', notification_url: '{baseurl}/{owner}/{identifier}/pulls/{id}/Messagecount') self.create(type: 'MessageTemplate::PullRequestMerged', sys_notice: '你提交的合并请求:{title}被合并', notification_url: '{baseurl}/{owner}/{identifier}/pulls/{id}/Messagecount') end @@ -52,4 +52,16 @@ class MessageTemplate e + Rails.logger.info("MessageTemplate::IssueAssigned.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/issue_assigner_expire.rb b/app/models/message_template/issue_assigner_expire.rb index b9afeae00..dc7a34fa9 100644 --- a/app/models/message_template/issue_assigner_expire.rb +++ b/app/models/message_template/issue_assigner_expire.rb @@ -13,4 +13,16 @@ # 我负责的易修截止日期到达最后一天 class MessageTemplate::IssueAssignerExpire < MessageTemplate + + # MessageTemplate::IssueAssignerExpire.get_message_content(User.where(login: 'yystopf'), Issue.last) + def self.get_message_content(receivers, issue) + project = issue&.project + owner = project&.owner + content = sys_notice.gsub('{title}', issue&.subject) + url = notification_url.gsub('{owner}', owner&.login).gsub('{identifier}', project&.identifier).gsub('{id}', issue&.id.to_s) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::IssueAssignerExpire.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/issue_atme.rb b/app/models/message_template/issue_atme.rb index 2a87da11c..0aa1c946d 100644 --- a/app/models/message_template/issue_atme.rb +++ b/app/models/message_template/issue_atme.rb @@ -13,4 +13,16 @@ # 在易修中@我 class MessageTemplate::IssueAtme < MessageTemplate + + # MessageTemplate::IssueAtme.get_message_content(User.where(login: 'yystopf'), User.last, Issue.last) + def self.get_message_content(receivers, operator, issue) + project = issue&.project + owner = project&.owner + content = sys_notice.gsub('{nickname}', operator&.nickname).gsub('{title}', issue&.subject) + url = notification_url.gsub('{owner}', owner&.login).gsub('{identifer}', project&.identifier).gsub('{id}', issue&.id.to_s) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::IssueAtme.get_message_content [ERROR] #{e}") + return 0, '', '' + end end diff --git a/app/models/message_template/issue_changed.rb b/app/models/message_template/issue_changed.rb index 0820d4bfe..33cd6170d 100644 --- a/app/models/message_template/issue_changed.rb +++ b/app/models/message_template/issue_changed.rb @@ -13,4 +13,117 @@ # 我创建或负责的易修状态变更 class MessageTemplate::IssueChanged < MessageTemplate + + # MessageTemplate::IssueChanged.get_message_content(User.where(login: 'yystopf'), User.last, Issue.last, {assigner: 'testforge2', milestone: '里程碑', tag: '标签', priority: '低', tracker: '支持', doneratio: '70', branch: 'master', startdate: Date.today, duedate: Date.today + 1.days}) + def self.get_message_content(receivers, operator, issue, change_params) + project = issue&.project + owner = project&.owner + content = MessageTemplate::IssueChanged.sys_notice.gsub('{nickname1}', operator&.nickname).gsub('{nickname2}', owner&.nickname).gsub('{repository}', project&.name).gsub('{title}', issue&.subject) + url = notification_url.gsub('{owner}', owner&.login).gsub('{identifier}', project&.identifier).gsub('{id}', issue&.id.to_s) + # 易修负责人修改 + if change_params[:assigner].present? + assigner = issue&.get_assign_user&.nickname || '未指派成员' + content.sub!('{ifassigner}', '') + content.sub!('{endassigner}', '') + content.gsub!('{assigner1}', assigner) + content.gsub!('{assigner2}', change_params[:assigner]) + else + content.gsub!(/({ifassigner})(.*)({endassigner})/, '') + end + # 易修状态修改 + if change_params[:status].present? + status = issue&.issue_status&.name + content.sub!('{ifstatus}', '') + content.sub!('{endstatus}', '') + content.gsub!('{status1}', status) + content.gsub!('{status2}', change_params[:status]) + else + content.gsub!(/({ifstatus})(.*)({endstatus})/, '') + end + # 易修类型修改 + if change_params[:tracker].present? + tracker = issue&.tracker&.name + content.sub!('{iftracker}', '') + content.sub!('{endtracker}', '') + content.gsub!('{tracker1}', tracker) + content.gsub!('{tracker2}', change_params[:tracker]) + else + content.gsub!(/({iftracker})(.*)({endtracker})/, '') + end + # 合并请求里程碑修改 + if change_params[:milestone].present? + milestone = issue&.version&.name || '未选择里程碑' + content.sub!('{ifmilestone}', '') + content.sub!('{endmilestone}', '') + content.gsub!('{milestone1}', milestone) + content.gsub!('{milestone2}', change_params[:milestone]) + else + content.gsub!(/({ifmilestone})(.*)({endmilestone})/, '') + end + # 合并请求标签修改 + if change_params[:tag].present? + tag = issue&.issue_tags.distinct.pluck(:name).join(",") + tag = '未选择标签' if tag == '' + content.sub!('{iftag}', '') + content.sub!('{endtag}', '') + content.gsub!('{tag1}', tag) + content.gsub!('{tag2}', change_params[:tag]) + else + content.gsub!(/({iftag})(.*)({endtag})()/, '') + end + # 合并请求优先级修改 + if change_params[:priority].present? + priority = issue&.priority&.name + content.sub!('{ifpriority}', '') + content.sub!('{endpriority}', '') + content.gsub!('{priority1}', priority) + content.gsub!('{priority2}', change_params[:priority]) + else + content.gsub!(/({ifpriority})(.*)({endpriority})/, '') + end + # 易修完成度修改 + if change_params[:doneratio].present? + doneratio = issue&.done_ratio + content.sub!('{ifdoneratio}', '') + content.sub!('{enddoneratio}', '') + content.gsub!('{doneratio1}', "#{doneratio}%") + content.gsub!('{doneratio2}', "#{change_params[:doneratio]}%") + else + content.gsub!(/({ifdoneratio})(.*)({enddoneratio})/, '') + end + # 易修指定分支修改 + if change_params[:branch].present? + branch = issue&.branch_name || '分支未指定' + content.sub!('{ifbranch}', '') + content.sub!('{endbranch}', '') + content.gsub!('{branch1}', branch ) + content.gsub!('{branch2}', change_params[:branch]) + else + content.gsub!(/({ifbranch})(.*)({endbranch})/, '') + end + # 易修开始日期修改 + if change_params[:startdate].present? + startdate = issue&.start_date || "未选择开始日期" + content.sub!('{ifstartdate}', '') + content.sub!('{endstartdate}', '') + content.gsub!('{startdate1}', startdate.to_s ) + content.gsub!('{startdate2}', change_params[:startdate].to_s) + else + content.gsub!(/({ifstartdate})(.*)({endstartdate})/, '') + end + # 易修结束日期修改 + if change_params[:duedate].present? + duedate = issue&.due_date || '未选择结束日期' + content.sub!('{ifduedate}', '') + content.sub!('{endduedate}', '') + content.gsub!('{duedate1}', duedate.to_s) + content.gsub!('{duedate2}', change_params[:duedate].to_s) + else + content.gsub!(/({ifduedate})(.*)({endduedate})/, '') + end + return receivers_string(receivers), content, url + # rescue => e + # Rails.logger.info("MessageTemplate::IssueAssigned.get_message_content [ERROR] #{e}") + # return '', '', '' + end end diff --git a/app/models/message_template/issue_creator_expire.rb b/app/models/message_template/issue_creator_expire.rb index 41c471528..9878f37f3 100644 --- a/app/models/message_template/issue_creator_expire.rb +++ b/app/models/message_template/issue_creator_expire.rb @@ -13,4 +13,16 @@ # 我创建的易修截止日期到达最后一天 class MessageTemplate::IssueCreatorExpire < MessageTemplate + + # MessageTemplate::IssueCreatorExpire.get_message_content(User.where(login: 'yystopf'), Issue.last) + def self.get_message_content(receivers, issue) + project = issue&.project + owner = project&.owner + content = sys_notice.gsub('{title}', issue&.subject) + url = notification_url.gsub('{owner}', owner&.login).gsub('{identifier}', project&.identifier).gsub('{id}', issue&.id.to_s) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::IssueAssignerExpire.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/issue_deleted.rb b/app/models/message_template/issue_deleted.rb index a6a0ef204..a261b713d 100644 --- a/app/models/message_template/issue_deleted.rb +++ b/app/models/message_template/issue_deleted.rb @@ -13,4 +13,15 @@ # 我创建或负责的易修删除 class MessageTemplate::IssueDeleted < MessageTemplate + + # MessageTemplate::IssueDeleted.get_message_content(User.where(login: 'yystopf'), User.last, Issue.last) + def self.get_message_content(receivers, operator, issue) + project = issue&.project + owner = project&.owner + content = sys_notice.gsub('{nickname}', operator&.nickname).gsub('{title}', issue&.subject) + return receivers_string(receivers), content, notification_url + rescue => e + Rails.logger.info("MessageTemplate::IssueAtme.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/issue_journal.rb b/app/models/message_template/issue_journal.rb index e4f7572b9..a24616f1d 100644 --- a/app/models/message_template/issue_journal.rb +++ b/app/models/message_template/issue_journal.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我创建或负责的易修有新的评论 +# TODO 我创建或负责的易修有新的评论 class MessageTemplate::IssueJournal < MessageTemplate + + # MessageTemplate::IssueJournal.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::IssueJournal.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/login_ip_tip.rb b/app/models/message_template/login_ip_tip.rb index 898a30c72..f7ecc776b 100644 --- a/app/models/message_template/login_ip_tip.rb +++ b/app/models/message_template/login_ip_tip.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 登录异常提示 +# TODO 登录异常提示 class MessageTemplate::LoginIpTip < MessageTemplate + + # MessageTemplate::LoginIpTip.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::LoginIpTip.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/organization_joined.rb b/app/models/message_template/organization_joined.rb index 95c9611ac..d3a7ca1d1 100644 --- a/app/models/message_template/organization_joined.rb +++ b/app/models/message_template/organization_joined.rb @@ -13,4 +13,14 @@ # 账号被拉入组织 class MessageTemplate::OrganizationJoined < MessageTemplate + + # MessageTemplate::OrganizationJoined.get_message_content(User.where(login: 'yystopf'), Organization.last) + def self.get_message_content(receivers, organization) + content = sys_notice.gsub('{organization}', organization&.name) + url = notification_url.gsub('{login}', organization&.name) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::OrganizationJoined.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/organization_left.rb b/app/models/message_template/organization_left.rb index 30df516e1..9fe844746 100644 --- a/app/models/message_template/organization_left.rb +++ b/app/models/message_template/organization_left.rb @@ -13,4 +13,14 @@ # 账号被移出组织 class MessageTemplate::OrganizationLeft < MessageTemplate + + # MessageTemplate::OrganizationLeft.get_message_content(User.where(login: 'yystopf'), Organization.last) + def self.get_message_content(receivers, organization) + content = sys_notice.gsub('{organization}', organization&.name) + url = notification_url.gsub('{login}', organization&.name) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::OrganizationLeft.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/organization_role.rb b/app/models/message_template/organization_role.rb index 6ca825034..223ecf8bb 100644 --- a/app/models/message_template/organization_role.rb +++ b/app/models/message_template/organization_role.rb @@ -13,4 +13,14 @@ # 账号组织权限变更 class MessageTemplate::OrganizationRole < MessageTemplate + + # MessageTemplate::OrganizationRole.get_message_content(User.where(login: 'yystopf'), Organization.last, '管理员') + def self.get_message_content(receivers, organization, role) + content = sys_notice.gsub('{organization}', organization&.name).gsub('{role}', role) + url = notification_url.gsub('{login}', organization&.login) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::OrganizationRole.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_deleted.rb b/app/models/message_template/project_deleted.rb index 334c6d871..69f094526 100644 --- a/app/models/message_template/project_deleted.rb +++ b/app/models/message_template/project_deleted.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我关注的仓库被删除 +# TODO 我关注的仓库被删除 class MessageTemplate::ProjectDeleted < MessageTemplate + + # MessageTemplate::ProjectDeleted.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectDeleted.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_followed.rb b/app/models/message_template/project_followed.rb index d7ade39e2..07dadb7c1 100644 --- a/app/models/message_template/project_followed.rb +++ b/app/models/message_template/project_followed.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我管理的仓库被关注 +# TODO 我管理的仓库被关注 class MessageTemplate::ProjectFollowed < MessageTemplate + + # MessageTemplate::ProjectFollowed.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectFollowed.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_forked.rb b/app/models/message_template/project_forked.rb index b69892fa0..a419bc8ff 100644 --- a/app/models/message_template/project_forked.rb +++ b/app/models/message_template/project_forked.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我管理的仓库被复刻 +# TODO 我管理的仓库被复刻 class MessageTemplate::ProjectForked < MessageTemplate + + # MessageTemplate::ProjectForked.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectForked.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_issue.rb b/app/models/message_template/project_issue.rb index f657084a5..81904f230 100644 --- a/app/models/message_template/project_issue.rb +++ b/app/models/message_template/project_issue.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我管理/关注的仓库有新的易修 +# TODO 我管理/关注的仓库有新的易修 class MessageTemplate::ProjectIssue < MessageTemplate + + # MessageTemplate::ProjectIssue.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectIssue.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_joined.rb b/app/models/message_template/project_joined.rb index 1da83b0c4..91d4b3c13 100644 --- a/app/models/message_template/project_joined.rb +++ b/app/models/message_template/project_joined.rb @@ -13,4 +13,14 @@ # 账号被拉入项目 class MessageTemplate::ProjectJoined < MessageTemplate + + # MessageTemplate::ProjectJoined.get_message_content(User.where(login: 'yystopf'), Project.last) + def self.get_message_content(receivers, project) + content = sys_notice.gsub('{repository}', project&.name) + url = notification_url.gsub('{owner}', project&.owner&.login).gsub('{identifier}', project&.identifier) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectJoined.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_left.rb b/app/models/message_template/project_left.rb index 639235026..e83b027a5 100644 --- a/app/models/message_template/project_left.rb +++ b/app/models/message_template/project_left.rb @@ -14,4 +14,13 @@ # 账号被移出项目 class MessageTemplate::ProjectLeft < MessageTemplate + # MessageTemplate::ProjectLeft.get_message_content(User.where(login: 'yystopf'), Project.last) + def self.get_message_content(receivers, project) + content = sys_notice.gsub('{repository}', project&.name) + url = notification_url.gsub('{owner}', project&.owner&.login).gsub('{identifier}', project&.identifier) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectLeft.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_member_joined.rb b/app/models/message_template/project_member_joined.rb index 0b4025459..c10edb596 100644 --- a/app/models/message_template/project_member_joined.rb +++ b/app/models/message_template/project_member_joined.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我管理的仓库有成员加入 +# TODO 我管理的仓库有成员加入 class MessageTemplate::ProjectMemberJoined < MessageTemplate + + # MessageTemplate::ProjectMemberJoined.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectMemberJoined.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_member_left.rb b/app/models/message_template/project_member_left.rb index ed261e0f3..b7133e052 100644 --- a/app/models/message_template/project_member_left.rb +++ b/app/models/message_template/project_member_left.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我管理的仓库有成员移出 +# TODO 我管理的仓库有成员移出 class MessageTemplate::ProjectMemberLeft < MessageTemplate + + # MessageTemplate::ProjectMemberLeft.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectMemberLeft.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_milestone.rb b/app/models/message_template/project_milestone.rb index b28766c5f..79e83485f 100644 --- a/app/models/message_template/project_milestone.rb +++ b/app/models/message_template/project_milestone.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我管理的仓库有新的里程碑 +# TODO 我管理的仓库有新的里程碑 class MessageTemplate::ProjectMilestone < MessageTemplate + + # MessageTemplate::ProjectMilestone.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectMilestone.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_praised.rb b/app/models/message_template/project_praised.rb index ec7a0564f..1af2ce88f 100644 --- a/app/models/message_template/project_praised.rb +++ b/app/models/message_template/project_praised.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我管理的仓库被点赞 +# TODO 我管理的仓库被点赞 class MessageTemplate::ProjectPraised < MessageTemplate + + # MessageTemplate::ProjectPraised.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectPraised.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_pull_request.rb b/app/models/message_template/project_pull_request.rb index 43a8359b7..f0c642d19 100644 --- a/app/models/message_template/project_pull_request.rb +++ b/app/models/message_template/project_pull_request.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我管理/关注的仓库有新的合并请求 +# TODO 我管理/关注的仓库有新的合并请求 class MessageTemplate::ProjectPullRequest < MessageTemplate + + # MessageTemplate::ProjectPullRequest.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectPullRequest.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_role.rb b/app/models/message_template/project_role.rb index 95ebe5ba9..cb229007a 100644 --- a/app/models/message_template/project_role.rb +++ b/app/models/message_template/project_role.rb @@ -13,4 +13,14 @@ # 账号仓库权限变更 class MessageTemplate::ProjectRole < MessageTemplate + + # MessageTemplate::ProjectRole.get_message_content(User.where(login: 'yystopf'), Project.last, '管理员') + def self.get_message_content(receivers, project, role) + content = sys_notice.gsub('{repository}', project&.name).gsub('{role}', role) + url = notification_url.gsub('{owner}', project&.owner&.login).gsub('{identifier}', project&.identifier) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectRole.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_setting_changed.rb b/app/models/message_template/project_setting_changed.rb index b983e6c60..b62b52e42 100644 --- a/app/models/message_template/project_setting_changed.rb +++ b/app/models/message_template/project_setting_changed.rb @@ -13,4 +13,64 @@ # 我管理的仓库项目设置被更改 class MessageTemplate::ProjectSettingChanged < MessageTemplate + + # MessageTemplate::ProjectSettingChanged.get_message_content(User.where(login: 'yystopf'), User.last, Project.last, {description: '测试修改项目简介', category: '大数据', language: 'Ruby', permission: '公有', navbar: '易修, 合并请求'}) + def self.get_message_content(receivers, operator, project, change_params) + owner = project&.owner + content = sys_notice.gsub('{nickname1}', operator&.nickname).gsub('{nickname2}', owner&.nickname).gsub('{repository}', project&.name) + url = notification_url.gsub('{owner}', owner&.login).gsub('{identifier}', project&.identifier) + # 项目名称更改 + if change_params[:name].present? + content.sub!('{ifname}', '') + content.sub!('{endname}', '') + content.gsub!('{name}', change_params[:name]) + else + content.gsub!(/({ifname})(.*)({endname})/, '') + end + # 项目简介更改 + if change_params[:description].present? + content.sub!('{ifdescription}', '') + content.sub!('{enddescription}', '') + content.gsub!('{description}', change_params[:description]) + else + content.gsub!(/({ifdescription})(.*)({enddescription})/, '') + end + # 项目类别更改 + if change_params[:category].present? + content.sub!('{ifcategory}', '') + content.sub!('{endcategory}', '') + content.gsub!('{category}', change_params[:category]) + else + content.gsub!(/({ifcategory})(.*)({endcategory})/, '') + end + # 项目语言更改 + if change_params[:language].present? + content.sub!('{iflanguage}', '') + content.sub!('{endlanguage}', '') + content.gsub!('{language}', change_params[:language]) + else + content.gsub!(/({iflanguage})(.*)({endlanguage})/, '') + end + # 项目公私有更改 + if change_params[:permission].present? + content.sub!('{ifpermission}', '') + content.sub!('{endpermission}', '') + content.gsub!('{permission}', change_params[:permission]) + else + content.gsub!(/({ifpermission})(.*)({endpermission})/, '') + end + # 项目导航更改 + if change_params[:navbar].present? + content.sub!('{ifnavbar}', '') + content.sub!('{endnavbar}', '') + content.gsub!('{navbar}', change_params[:navbar]) + else + content.gsub!(/({ifnavbar})(.*)({endnavbar})/, '') + end + + return receivers_string(receivers.where.not(id: operator.id)), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectSettingChanged.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_transfer.rb b/app/models/message_template/project_transfer.rb index ce422f090..e931e7b1f 100644 --- a/app/models/message_template/project_transfer.rb +++ b/app/models/message_template/project_transfer.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我关注的仓库被转移 +# TODO 我关注的仓库被转移 class MessageTemplate::ProjectTransfer < MessageTemplate + + # MessageTemplate::ProjectTransfer.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectTransfer.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/project_version.rb b/app/models/message_template/project_version.rb index afc25fc4e..26067b7f4 100644 --- a/app/models/message_template/project_version.rb +++ b/app/models/message_template/project_version.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我关注的仓库有新的发行版 +# TODO 我关注的仓库有新的发行版 class MessageTemplate::ProjectVersion < MessageTemplate + + # MessageTemplate::ProjectVersion.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::ProjectVersion.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/pull_request_assigned.rb b/app/models/message_template/pull_request_assigned.rb index d6d497daa..132a36154 100644 --- a/app/models/message_template/pull_request_assigned.rb +++ b/app/models/message_template/pull_request_assigned.rb @@ -13,4 +13,16 @@ # 有新指派给我的合并请求 class MessageTemplate::PullRequestAssigned < MessageTemplate + + # MessageTemplate::PullRequestAssigned.get_message_content(User.where(login: 'yystopf'), User.last, PullRequest.last) + def self.get_message_content(receivers, operator, pull_request) + project = pull_request&.project + owner = project&.owner + content = sys_notice.gsub('{nickname1}', operator&.nickname).gsub('{nickname2}', owner&.nickname).gsub('{repository}', project&.name).gsub('{title}', pull_request&.title) + url = notification_url.gsub('{owner}', owner&.login).gsub('{identifier}', project&.identifier).gsub('{id}', pull_request&.id.to_s) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::PullRequestAssigned.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/pull_request_atme.rb b/app/models/message_template/pull_request_atme.rb index 5ff526fa9..d940b2358 100644 --- a/app/models/message_template/pull_request_atme.rb +++ b/app/models/message_template/pull_request_atme.rb @@ -12,4 +12,16 @@ # 在合并请求中@我 class MessageTemplate::PullRequestAtme < MessageTemplate + + # MessageTemplate::PullRequestAtme.get_message_content(User.where(login: 'yystopf'), User.last, PullRequest.last) + def self.get_message_content(receivers, operator, pull_request) + project = pull_request&.project + owner = project&.owner + content = sys_notice.gsub('{nickname}', operator&.nickname).gsub('{title}', pull_request&.title) + url = notification_url.gsub('{owner}', owner&.login).gsub('{identifier}', project&.identifier).gsub('{id}', pull_request&.id.to_s) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::PullRequestAtme.get_message_content [ERROR] #{e}") + return '', '', '' + end end \ No newline at end of file diff --git a/app/models/message_template/pull_request_changed.rb b/app/models/message_template/pull_request_changed.rb index dcde72b84..487b250b3 100644 --- a/app/models/message_template/pull_request_changed.rb +++ b/app/models/message_template/pull_request_changed.rb @@ -13,4 +13,58 @@ # 我创建或负责的合并请求状态变更 class MessageTemplate::PullRequestChanged < MessageTemplate + + # MessageTemplate::PullRequestChanged.get_message_content(User.where(login: 'yystopf'), User.last, PullRequest.last, {assigner: 'testforge2', tag: '标签', priority: '低'}) + def self.get_message_content(receivers, operator, pull_request, change_params) + project = pull_request&.project + owner = project&.owner + issue = pull_request&.issue + content = sys_notice.gsub('{nickname1}', operator&.nickname).gsub('{nickname2}', owner&.nickname).gsub('{repository}', project&.name) + url = notification_url.gsub('{owner}', owner&.login).gsub('{identifier}', project&.identifier).gsub('{id}', pull_request&.id.to_s) + # 合并请求审查成员修改 + if change_params[:assigner].present? + assigner = issue&.get_assign_user&.nickname || '未指派成员' + content.sub!('{ifassigner}', '') + content.sub!('{endassigner}', '') + content.gsub!('{assigner1}', assigner) + content.gsub!('{assigner2}', change_params[:assigner]) + else + content.gsub!(/({ifassigner})(.*)({endassigner})/, '') + end + # 合并请求里程碑修改 + if change_params[:milestone].present? + milestone = issue&.version&.name || '未选择里程碑' + content.sub!('{ifmilestone}', '') + content.sub!('{endmilestone}', '') + content.gsub!('{milestone1}', milestone) + content.gsub!('{milestone2}', change_params[:milestone]) + else + content.gsub!(/({ifmilestone})(.*)({endmilestone})/, '') + end + # 合并请求标签修改 + if change_params[:tag].present? + tag = issue&.issue_tags.distinct.pluck(:name).join(",") + tag = '未选择标签' if tag == '' + content.sub!('{iftag}', '') + content.sub!('{endtag}', '') + content.gsub!('{tag1}', tag) + content.gsub!('{tag2}', change_params[:tag]) + else + content.gsub!(/({iftag})(.*)({endtag})()/, '') + end + # 合并请求优先级修改 + if change_params[:priority].present? + priority = issue&.priority&.name + content.sub!('{ifpriority}', '') + content.sub!('{endpriority}', '') + content.gsub!('{priority1}', priority) + content.gsub!('{priority2}', change_params[:priority]) + else + content.gsub!(/({ifpriority})(.*)({endpriority})/, '') + end + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::PullRequestChanged.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/pull_request_closed.rb b/app/models/message_template/pull_request_closed.rb index 0574b6409..6e5bfbe17 100644 --- a/app/models/message_template/pull_request_closed.rb +++ b/app/models/message_template/pull_request_closed.rb @@ -13,4 +13,16 @@ # 我创建或负责的合并请求被关闭 class MessageTemplate::PullRequestClosed < MessageTemplate + + # MessageTemplate::PullRequestClosed.get_message_content(User.where(login: 'yystopf'), User.last, PullRequest.last) + def self.get_message_content(receivers, operator, pull_request) + project = pull_request&.project + owner = project&.owner + content = sys_notice.gsub('{title}', pull_request&.title) + url = notification_url + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::PullRequestClosed.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/pull_request_journal.rb b/app/models/message_template/pull_request_journal.rb index 6d3b4fe3b..9c68e64f4 100644 --- a/app/models/message_template/pull_request_journal.rb +++ b/app/models/message_template/pull_request_journal.rb @@ -11,6 +11,14 @@ # notification_url :string(255) # -# 我创建或负责的合并请求有新的评论 +# TODO 我创建或负责的合并请求有新的评论 class MessageTemplate::PullRequestJournal < MessageTemplate + + # MessageTemplate::PullRequestJournal.get_message_content(User.where(login: 'yystopf')) + def self.get_message_content(receivers) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::PullRequestJournal.get_message_content [ERROR] #{e}") + return '', '', '' + end end diff --git a/app/models/message_template/pull_request_merged.rb b/app/models/message_template/pull_request_merged.rb index b06687cbc..2d229bb6b 100644 --- a/app/models/message_template/pull_request_merged.rb +++ b/app/models/message_template/pull_request_merged.rb @@ -13,4 +13,16 @@ # 我创建或负责的合并请求被合并 class MessageTemplate::PullRequestMerged < MessageTemplate + + # MessageTemplate::PullRequestMerged.get_message_content(User.where(login: 'yystopf'), User.last, PullRequest.last) + def self.get_message_content(receivers, operator, pull_request) + project = pull_request&.project + owner = project&.owner + content = sys_notice.gsub('{title}', pull_request&.title) + url = notification_url.gsub('{owner}', owner&.login).gsub('{identifier}', project&.identifier).gsub('{id}', pull_request&.id.to_s) + return receivers_string(receivers), content, url + rescue => e + Rails.logger.info("MessageTemplate::PullRequestMerged.get_message_content [ERROR] #{e}") + return '', '', '' + end end