about summary refs log tree commit diff
path: root/app/serializers
diff options
context:
space:
mode:
authorEugen Rochko <eugen@zeonfederated.com>2017-12-06 07:04:49 +0100
committerYamagishi Kazutoshi <ykzts@desire.sh>2017-12-06 15:04:49 +0900
commit42bcbd36b72c7ddc5ae1ecced09614863ca382bd (patch)
tree851a64a7930cccdcda924bc12f0493e3fb22ecf1 /app/serializers
parent0393a64a90c2dee17e7a9d0c1481fd4155825b85 (diff)
Remove rabl dependency (#5894)
* Remove rabl dependency

* Replicate old Oj configuration
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/webfinger_serializer.rb26
1 files changed, 26 insertions, 0 deletions
diff --git a/app/serializers/webfinger_serializer.rb b/app/serializers/webfinger_serializer.rb
new file mode 100644
index 000000000..f80d12c02
--- /dev/null
+++ b/app/serializers/webfinger_serializer.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class WebfingerSerializer < ActiveModel::Serializer
+  include RoutingHelper
+
+  attributes :subject, :aliases, :links
+
+  def subject
+    object.to_webfinger_s
+  end
+
+  def aliases
+    [short_account_url(object), account_url(object)]
+  end
+
+  def links
+    [
+      { rel: 'http://webfinger.net/rel/profile-page', type: 'text/html', href: short_account_url(object) },
+      { rel: 'http://schemas.google.com/g/2010#updates-from', type: 'application/atom+xml', href: account_url(object, format: 'atom') },
+      { rel: 'self', type: 'application/activity+json', href: account_url(object) },
+      { rel: 'salmon', href: api_salmon_url(object.id) },
+      { rel: 'magic-public-key', href: "data:application/magic-public-key,#{object.magic_key}" },
+      { rel: 'http://ostatus.org/schema/1.0/subscribe', template: "#{authorize_follow_url}?acct={uri}" },
+    ]
+  end
+end