app
controllers
helpers
javascript
lib
activitypub
activity
activity.rb
adapter.rb
case_transform.rb
linked_data_signature.rb
tag_manager.rb
ostatus
settings
application_extension.rb
delivery_failure_tracker.rb
exceptions.rb
extractor.rb
feed_manager.rb
formatter.rb
hash_object.rb
inline_renderer.rb
language_detector.rb
provider_discovery.rb
request.rb
sanitize_config.rb
status_filter.rb
status_finder.rb
tag_manager.rb
themes.rb
user_settings_decorator.rb
webfinger_resource.rb
mailers
models
policies
presenters
serializers
services
validators
views
workers
bin
config
db
docs
lib
log
nanobox
public
spec
streaming
vendor
.babelrc
.buildpacks
.codeclimate.yml
.dockerignore
.editorconfig
.env.nanobox
.env.production.sample
.env.test
.env.vagrant
.eslintignore
.eslintrc.yml
.foreman
.gitattributes
.gitignore
.haml-lint.yml
.nanoignore
.nvmrc
.postcssrc.yml
.profile
.rspec
.rubocop.yml
.ruby-version
.scss-lint.yml
.slugignore
.travis.yml
.yarnclean
Aptfile
CODEOWNERS
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Capfile
Dockerfile
Gemfile
Gemfile.lock
ISSUE_TEMPLATE.md
LICENSE
Procfile
Procfile.dev
README.md
Rakefile
Vagrantfile
app.json
boxfile.yml
config.ru
docker-compose.yml
docker_entrypoint.sh
jest.config.js
package.json
scalingo.json
yarn.lock
* Serialize moved accounts into REST and ActivityPub APIs * Parse federated moved accounts from ActivityPub * Add note about moved accounts to public profiles * Add moved account message to web UI * Fix code style issues
38 lines
1.3 KiB
Ruby
38 lines
1.3 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
class ActivityPub::Adapter < ActiveModelSerializers::Adapter::Base
|
|
CONTEXT = {
|
|
'@context': [
|
|
'https://www.w3.org/ns/activitystreams',
|
|
'https://w3id.org/security/v1',
|
|
|
|
{
|
|
'manuallyApprovesFollowers' => 'as:manuallyApprovesFollowers',
|
|
'sensitive' => 'as:sensitive',
|
|
'movedTo' => 'as:movedTo',
|
|
'Hashtag' => 'as:Hashtag',
|
|
'ostatus' => 'http://ostatus.org#',
|
|
'atomUri' => 'ostatus:atomUri',
|
|
'inReplyToAtomUri' => 'ostatus:inReplyToAtomUri',
|
|
'conversation' => 'ostatus:conversation',
|
|
'toot' => 'http://joinmastodon.org/ns#',
|
|
'Emoji' => 'toot:Emoji',
|
|
},
|
|
],
|
|
}.freeze
|
|
|
|
def self.default_key_transform
|
|
:camel_lower
|
|
end
|
|
|
|
def self.transform_key_casing!(value, _options)
|
|
ActivityPub::CaseTransform.camel_lower(value)
|
|
end
|
|
|
|
def serializable_hash(options = nil)
|
|
options = serialization_options(options)
|
|
serialized_hash = ActiveModelSerializers::Adapter::Attributes.new(serializer, instance_options).serializable_hash(options)
|
|
CONTEXT.merge(self.class.transform_key_casing!(serialized_hash, instance_options))
|
|
end
|
|
end
|