about summary refs log tree commit diff
path: root/app/serializers
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2022-10-08 06:01:11 +0200
committerGitHub <noreply@github.com>2022-10-08 06:01:11 +0200
commita2ba01132603174c43c5788a95f9ee127b684c0a (patch)
tree3d5ab173a8a768f76cc14dc739ca64bedcdddf43 /app/serializers
parent7fb738c8372a700e1b42534cb202005b8c73b946 (diff)
Change privacy policy to be rendered in web UI, add REST API (#19310)
Source string no longer localized, Markdown instead of raw HTML
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/rest/privacy_policy_serializer.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/app/serializers/rest/privacy_policy_serializer.rb b/app/serializers/rest/privacy_policy_serializer.rb
new file mode 100644
index 000000000..f0572e714
--- /dev/null
+++ b/app/serializers/rest/privacy_policy_serializer.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class REST::PrivacyPolicySerializer < ActiveModel::Serializer
+  attributes :updated_at, :content
+
+  def updated_at
+    object.updated_at.iso8601
+  end
+
+  def content
+    markdown.render(object.text % { domain: Rails.configuration.x.local_domain })
+  end
+
+  private
+
+  def markdown
+    @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, escape_html: true, no_images: true)
+  end
+end