Files
.circleci
.github
app
chewy
controllers
helpers
javascript
lib
mailers
models
policies
presenters
serializers
activitypub
nodeinfo
rest
admin
keys
account_featured_tag_serializer.rb
account_serializer.rb
announcement_serializer.rb
application_serializer.rb
context_serializer.rb
conversation_serializer.rb
credential_account_serializer.rb
custom_emoji_serializer.rb
encrypted_message_serializer.rb
featured_tag_serializer.rb
filter_serializer.rb
identity_proof_serializer.rb
instance_serializer.rb
list_serializer.rb
marker_serializer.rb
media_attachment_serializer.rb
muted_account_serializer.rb
notification_serializer.rb
poll_serializer.rb
preferences_serializer.rb
preview_card_serializer.rb
reaction_serializer.rb
relationship_serializer.rb
report_serializer.rb
scheduled_status_serializer.rb
search_serializer.rb
status_serializer.rb
tag_serializer.rb
web_push_subscription_serializer.rb
rss
web
initial_state_serializer.rb
manifest_serializer.rb
oembed_serializer.rb
webfinger_serializer.rb
services
validators
views
workers
bin
chart
config
db
dist
lib
log
nanobox
public
spec
streaming
vendor
.buildpacks
.codeclimate.yml
.dockerignore
.editorconfig
.env.nanobox
.env.production.sample
.env.test
.env.vagrant
.eslintignore
.eslintrc.js
.foreman
.gitattributes
.gitignore
.haml-lint.yml
.nanoignore
.nvmrc
.profile
.rspec
.rubocop.yml
.ruby-version
.sass-lint.yml
.slugignore
.yarnclean
AUTHORS.md
Aptfile
CHANGELOG.md
CODE_OF_CONDUCT.md
CONTRIBUTING.md
Capfile
Dockerfile
Gemfile
Gemfile.lock
LICENSE
Procfile
Procfile.dev
README.md
Rakefile
SECURITY.md
Vagrantfile
app.json
babel.config.js
boxfile.yml
config.ru
crowdin.yml
docker-compose.yml
ide-helper.js
package.json
postcss.config.js
priv-config
scalingo.json
yarn.lock
hometown/app/serializers/rest/instance_serializer.rb
2020-04-28 09:43:34 +02:00

76 lines
1.5 KiB
Ruby

# frozen_string_literal: true
class REST::InstanceSerializer < ActiveModel::Serializer
include RoutingHelper
attributes :uri, :title, :short_description, :description, :email,
:version, :urls, :stats, :thumbnail,
:languages, :registrations, :approval_required, :invites_enabled
has_one :contact_account, serializer: REST::AccountSerializer
delegate :contact_account, to: :instance_presenter
def uri
Rails.configuration.x.local_domain
end
def title
Setting.site_title
end
def short_description
Setting.site_short_description
end
def description
Setting.site_description
end
def email
Setting.site_contact_email
end
def version
Mastodon::Version.to_s
end
def thumbnail
instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url) : full_pack_url('media/images/preview.jpg')
end
def stats
{
user_count: instance_presenter.user_count,
status_count: instance_presenter.status_count,
domain_count: instance_presenter.domain_count,
}
end
def urls
{ streaming_api: Rails.configuration.x.streaming_api_base_url }
end
def languages
[I18n.default_locale]
end
def registrations
Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
end
def approval_required
Setting.registrations_mode == 'approved'
end
def invites_enabled
Setting.min_invite_role == 'user'
end
private
def instance_presenter
@instance_presenter ||= InstancePresenter.new
end
end