aboutsummaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2020-06-04 19:03:31 +0200
committerGitHub <noreply@github.com>2020-06-04 19:03:31 +0200
commitaed3a436a2dbef40096ec8596cec08e185efe936 (patch)
tree11830cfb126e6c10c94ab8990943182deb053cc5 /app
parentf669b8bcceb5043e468b3319c0bb7e834e3892d4 (diff)
downloadmastodon-aed3a436a2dbef40096ec8596cec08e185efe936.tar
mastodon-aed3a436a2dbef40096ec8596cec08e185efe936.tar.gz
mastodon-aed3a436a2dbef40096ec8596cec08e185efe936.tar.bz2
mastodon-aed3a436a2dbef40096ec8596cec08e185efe936.zip
Fix serialization of replies when some of them are URIs (#13957)
* Fix serialization of replies when some of them are URIs Fixes #13956 * Add test
Diffstat (limited to 'app')
-rw-r--r--app/serializers/activitypub/collection_serializer.rb11
1 files changed, 11 insertions, 0 deletions
diff --git a/app/serializers/activitypub/collection_serializer.rb b/app/serializers/activitypub/collection_serializer.rb
index 00c7b786a..ea7af5433 100644
--- a/app/serializers/activitypub/collection_serializer.rb
+++ b/app/serializers/activitypub/collection_serializer.rb
@@ -1,6 +1,15 @@
# frozen_string_literal: true
class ActivityPub::CollectionSerializer < ActivityPub::Serializer
+ class StringSerializer < ActiveModel::Serializer
+ # Despite the name, it does not return a hash, but the same can be said of
+ # the ActiveModel::Serializer::CollectionSerializer class which handles
+ # arrays.
+ def serializable_hash(*_args)
+ object
+ end
+ end
+
def self.serializer_for(model, options)
case model.class.name
when 'Status'
@@ -9,6 +18,8 @@ class ActivityPub::CollectionSerializer < ActivityPub::Serializer
ActivityPub::DeviceSerializer
when 'ActivityPub::CollectionPresenter'
ActivityPub::CollectionSerializer
+ when 'String'
+ StringSerializer
else
super
end