about summary refs log tree commit diff
path: root/app/services/concerns
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2019-06-07 22:15:44 +0200
committerGitHub <noreply@github.com>2019-06-07 22:15:44 +0200
commit11c28abcfebcf8827f99a86540076347f1a1edff (patch)
treeb5d615001967cf102e88fac86b8ddb3227600109 /app/services/concerns
parent83600198961cce9bfe82cf0f0c33286703bc86d1 (diff)
parentaec3fa35fda50e7f618dcf8b8f14e78a995583f4 (diff)
Merge pull request #1097 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/services/concerns')
-rw-r--r--app/services/concerns/payloadable.rb19
1 files changed, 19 insertions, 0 deletions
diff --git a/app/services/concerns/payloadable.rb b/app/services/concerns/payloadable.rb
new file mode 100644
index 000000000..13d9c3548
--- /dev/null
+++ b/app/services/concerns/payloadable.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+module Payloadable
+  def serialize_payload(record, serializer, options = {})
+    signer    = options.delete(:signer)
+    sign_with = options.delete(:sign_with)
+    payload   = ActiveModelSerializers::SerializableResource.new(record, options.merge(serializer: serializer, adapter: ActivityPub::Adapter)).as_json
+
+    if (record.respond_to?(:sign?) && record.sign?) && signer && signing_enabled?
+      ActivityPub::LinkedDataSignature.new(payload).sign!(signer, sign_with: sign_with)
+    else
+      payload
+    end
+  end
+
+  def signing_enabled?
+    true
+  end
+end