about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/helpers/service_account_helper.rb25
1 files changed, 25 insertions, 0 deletions
diff --git a/app/helpers/service_account_helper.rb b/app/helpers/service_account_helper.rb
new file mode 100644
index 000000000..f66641734
--- /dev/null
+++ b/app/helpers/service_account_helper.rb
@@ -0,0 +1,25 @@
+module ServiceAccountHelper
+  def service_post(service, text, options = {})
+    acct = find_service_account(service)
+    return if acct.nil?
+
+    options[:text] = text
+    options[:local_only] ||= true
+    options[:nomentions] ||= true
+    options[:content_type] ||= 'text/markdown'
+
+    PostStatusService.new.call(acct, options.compact)
+  end
+
+  def service_dm(service, to, text, options = {})
+    options[:mentions] = [to]
+    options[:visibility] ||= :direct
+    service_post(service, text, options)
+  end
+
+  def find_service_account(service)
+    account_id = ENV["#{service.upcase}_USER"].to_i
+    return if account_id == 0
+    Account.find_by(id: account_id)
+  end
+end