add: email message sended by html

This commit is contained in:
2021-09-24 15:37:55 +08:00
parent 1c27e9ccd8
commit 6b68ea998d
50 changed files with 935 additions and 111 deletions

View File

@@ -20,8 +20,10 @@ class SendTemplateMessageJob < ApplicationJob
receivers = User.where(id: issue&.assigned_to_id).where.not(id: operator&.id)
receivers_string, content, notification_url = MessageTemplate::IssueAssigned.get_message_content(receivers, operator, issue)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, issue_id: issue.id})
receivers_email_string, email_content, notification_url = MessageTemplate::IssueAssigned.get_email_message_content(receivers, operator, issue)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::IssueAssigned.get_email_message_content(receiver, operator, issue)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'IssueAssignerExpire'
issue_id = args[0]
issue = Issue.find_by_id(issue_id)
@@ -67,8 +69,10 @@ class SendTemplateMessageJob < ApplicationJob
receivers = User.where(id: user.id)
receivers_string, content, notification_url = MessageTemplate::OrganizationJoined.get_message_content(receivers, organization)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {user_id: user.id, organization_id: organization.id})
receivers_email_string, email_content, notification_url = MessageTemplate::OrganizationJoined.get_email_message_content(receivers, organization)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::OrganizationJoined.get_email_message_content(receiver, organization)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'OrganizationLeft'
user_id, organization_id = args[0], args[1]
user = User.find_by_id(user_id)
@@ -77,8 +81,10 @@ class SendTemplateMessageJob < ApplicationJob
receivers = User.where(id: user.id)
receivers_string, content, notification_url = MessageTemplate::OrganizationLeft.get_message_content(receivers, organization)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {user_id: user.id, organization_id: organization.id})
receivers_email_string, email_content, notification_url = MessageTemplate::OrganizationLeft.get_email_message_content(receivers, organization)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::OrganizationLeft.get_email_message_content(receiver, organization)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'OrganizationRole'
user_id, organization_id, role = args[0], args[1], args[2]
user = User.find_by_id(user_id)
@@ -87,19 +93,27 @@ class SendTemplateMessageJob < ApplicationJob
receivers = User.where(id: user.id)
receivers_string, content, notification_url = MessageTemplate::OrganizationRole.get_message_content(receivers, organization, role)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {user_id: user.id, organization_id: organization.id, role: role})
receivers_email_string, email_content, notification_url = MessageTemplate::OrganizationRole.get_email_message_content(receivers, organization, role)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::OrganizationRole.get_email_message_content(receiver, organization, role)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'ProjectIssue'
operator_id, issue_id = args[0], args[1]
operator = User.find_by_id(operator_id)
issue = Issue.find_by_id(issue_id)
return unless operator.present? && issue.present? && issue&.project.present?
managers = issue&.project&.all_managers.where.not(id: operator&.id)
followers = [] # TODO
followers = User.none # TODO
receivers_string, content, notification_url = MessageTemplate::ProjectIssue.get_message_content(managers, followers, operator, issue)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, issue_id: issue.id})
receivers_email_string, email_content, notification_url = MessageTemplate::ProjectIssue.get_email_message_content(managers, followers, operator, issue)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
managers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectIssue.get_email_message_content(receiver, true, operator, issue)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
followers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectIssue.get_email_message_content(receiver, false, operator, issue)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'ProjectJoined'
operator_id, user_id, project_id = args[0], args[1], args[2]
operator = User.find_by_id(operator_id)
@@ -109,8 +123,10 @@ class SendTemplateMessageJob < ApplicationJob
receivers = User.where(id: user.id).where.not(id: operator&.id)
receivers_string, content, notification_url = MessageTemplate::ProjectJoined.get_message_content(receivers, project)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, user_id: user.id, project_id: project.id})
receivers_emal_string, email_content, notification_url = MessageTemplate::ProjectJoined.get_email_message_content(receivers, project)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectJoined.get_email_message_content(receiver, project)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'ProjectLeft'
operator_id, user_id, project_id = args[0], args[1], args[2]
operator = User.find_by_id(operator_id)
@@ -120,8 +136,10 @@ class SendTemplateMessageJob < ApplicationJob
receivers = User.where(id: user.id).where.not(id: operator&.id)
receivers_string, content, notification_url = MessageTemplate::ProjectLeft.get_message_content(receivers, project)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, user_id: user.id, project_id: project.id})
receivers_email_string, email_content, notification_url = MessageTemplate::ProjectLeft.get_email_message_content(receivers, project)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectLeft.get_email_message_content(receiver, project)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'ProjectMemberJoined'
operator_id, user_id, project_id = args[0], args[1], args[2]
operator = User.find_by_id(operator_id)
@@ -131,8 +149,10 @@ class SendTemplateMessageJob < ApplicationJob
receivers = project&.all_managers.where.not(id: operator&.id)
receivers_string, content, notification_url = MessageTemplate::ProjectMemberJoined.get_message_content(receivers, user, project)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, user_id: user.id, project_id: project.id})
receivers_email_string, email_content, notification_url = MessageTemplate::ProjectMemberJoined.get_email_message_content(receivers, user, project)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectMemberJoined.get_email_message_content(receiver, user, project)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'ProjectMemberLeft'
operator_id, user_id, project_id = args[0], args[1], args[2]
operator = User.find_by_id(operator_id)
@@ -142,19 +162,27 @@ class SendTemplateMessageJob < ApplicationJob
receivers = project&.all_managers.where.not(id: operator&.id)
receivers_string, content, notification_url = MessageTemplate::ProjectMemberLeft.get_message_content(receivers, user, project)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, user_id: user.id, project_id: project.id})
receivers_email_string, email_content, notification_url = MessageTemplate::ProjectMemberLeft.get_email_message_content(receivers, user, project)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectMemberLeft.get_email_message_content(receiver, user, project)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'ProjectPullRequest'
operator_id, pull_request_id = args[0], args[1]
operator = User.find_by_id(operator_id)
pull_request = PullRequest.find_by_id(pull_request_id)
return unless operator.present? && pull_request.present? && pull_request&.project.present?
managers = pull_request&.project&.all_managers.where.not(id: operator&.id)
followers = [] # TODO
followers = User.none # TODO
receivers_string, content, notification_url = MessageTemplate::ProjectPullRequest.get_message_content(managers, followers, operator, pull_request)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, pull_request_id: pull_request.id})
receivers_email_string, email_content, notification_url = MessageTemplate::ProjectPullRequest.get_email_message_content(managers, followers, operator, pull_request)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
managers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectPullRequest.get_email_message_content(receiver, true, operator, pull_request)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
followers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectPullRequest.get_email_message_content(receiver, false, operator, pull_request)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'ProjectRole'
operator_id, user_id, project_id, role = args[0], args[1], args[2], args[3]
operator = User.find_by_id(operator_id)
@@ -164,8 +192,10 @@ class SendTemplateMessageJob < ApplicationJob
receivers = User.where(id: user.id).where.not(id: operator&.id)
receivers_string, content, notification_url = MessageTemplate::ProjectRole.get_message_content(receivers, project, role)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, user_id: user.id, project_id: project.id, role: role})
receivers_email_string, email_content, notification_url = MessageTemplate::ProjectRole.get_email_message_content(receivers, project, role)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectRole.get_email_message_content(receivers, project, role)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'ProjectSettingChanged'
operator_id, project_id, change_params = args[0], args[1], args[2]
operator = User.find_by_id(operator_id)
@@ -174,8 +204,10 @@ class SendTemplateMessageJob < ApplicationJob
receivers = project.all_managers.where.not(id: operator&.id)
receivers_string, content, notification_url = MessageTemplate::ProjectSettingChanged.get_message_content(receivers, operator, project, change_params.symbolize_keys)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, project_id: project.id, change_params: change_params})
receivers_email_string, email_content, notification_url = MessageTemplate::ProjectSettingChanged.get_email_message_content(receivers, operator, project, change_params.symbolize_keys)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::ProjectSettingChanged.get_email_message_content(receiver, operator, project, change_params.symbolize_keys)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'PullRequestAssigned'
operator_id, pull_request_id = args[0], args[1]
operator = User.find_by_id(operator_id)
@@ -185,8 +217,10 @@ class SendTemplateMessageJob < ApplicationJob
receivers = User.where(id: issue&.assigned_to_id).where.not(id: operator&.id)
receivers_string, content, notification_url = MessageTemplate::PullRequestAssigned.get_message_content(receivers, operator, pull_request)
Notice::Write::CreateService.call(receivers_string, content, notification_url, source, {operator_id: operator.id, pull_request_id: pull_request.id})
receivers_email_string, email_content, notification_url = MessageTemplate::PullRequestAssigned.get_email_message_content(receivers, operator, pull_request)
Notice::Write::EmailCreateService.call(receivers_email_string, email_content, source)
receivers.find_each do |receiver|
receivers_email_string, email_title, email_content = MessageTemplate::PullRequestAssigned.get_email_message_content(receiver, operator, pull_request)
Notice::Write::EmailCreateService.call(receivers_email_string, email_title, email_content)
end
when 'PullRequestAtme'
receivers, operator_id, pull_request_id = args[0], args[1], args[2]
operator = User.find_by_id(operator_id)