forked from discourse/discourse
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsystem_message.rb
42 lines (29 loc) · 1.2 KB
/
system_message.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# Handle sending a message to a user from the system.
require_dependency 'post_creator'
require_dependency 'topic_subtype'
require_dependency 'discourse'
class SystemMessage
def self.create(recipient, type, params = {})
self.new(recipient).create(type, params)
end
def initialize(recipient)
@recipient = recipient
end
def create(type, params = {})
defaults = {site_name: SiteSetting.title,
username: @recipient.username,
user_preferences_url: "#{Discourse.base_url}/users/#{@recipient.username_lower}/preferences",
new_user_tips: SiteContent.content_for(:usage_tips),
site_password: "",
base_url: Discourse.base_url}
params = defaults.merge(params)
title = I18n.t("system_messages.#{type}.subject_template", params)
raw_body = I18n.t("system_messages.#{type}.text_body_template", params)
PostCreator.create(Discourse.system_user,
raw: raw_body,
title: title,
archetype: Archetype.private_message,
subtype: TopicSubtype.system_message,
target_usernames: @recipient.username)
end
end