diff options
author | Reverite <github@reverite.sh> | 2019-06-26 20:31:07 -0700 |
---|---|---|
committer | Reverite <github@reverite.sh> | 2019-06-26 20:31:07 -0700 |
commit | 3fa90982efda2109ddf90d81f5ed3449f8282642 (patch) | |
tree | e5514f4c72c9ffb44059a2afb7fdf24d0348bbd4 /app/serializers/rest | |
parent | 714940de498e93a8bf40dcda1835217df18741bf (diff) | |
parent | 9ef25877dfda12cf31ec586294e4d4908f5be4f0 (diff) |
Merge branch 'glitch' into production
Diffstat (limited to 'app/serializers/rest')
-rw-r--r-- | app/serializers/rest/admin/account_serializer.rb | 77 | ||||
-rw-r--r-- | app/serializers/rest/admin/report_serializer.rb | 16 | ||||
-rw-r--r-- | app/serializers/rest/instance_serializer.rb | 12 |
3 files changed, 103 insertions, 2 deletions
diff --git a/app/serializers/rest/admin/account_serializer.rb b/app/serializers/rest/admin/account_serializer.rb new file mode 100644 index 000000000..f579d3302 --- /dev/null +++ b/app/serializers/rest/admin/account_serializer.rb @@ -0,0 +1,77 @@ +# frozen_string_literal: true + +class REST::Admin::AccountSerializer < ActiveModel::Serializer + attributes :id, :username, :domain, :created_at, + :email, :ip, :role, :confirmed, :suspended, + :silenced, :disabled, :approved, :locale, + :invite_request + + attribute :created_by_application_id, if: :created_by_application? + attribute :invited_by_account_id, if: :invited? + + has_one :account, serializer: REST::AccountSerializer + + def id + object.id.to_s + end + + def email + object.user_email + end + + def ip + object.user_current_sign_in_ip.to_s.presence + end + + def role + object.user_role + end + + def suspended + object.suspended? + end + + def silenced + object.silenced? + end + + def confirmed + object.user_confirmed? + end + + def disabled + object.user_disabled? + end + + def approved + object.user_approved? + end + + def account + object + end + + def locale + object.user_locale + end + + def created_by_application_id + object.user&.created_by_application_id&.to_s&.presence + end + + def invite_request + object.user&.invite_request&.text + end + + def invited_by_account_id + object.user&.invite&.user&.account_id&.to_s&.presence + end + + def invited? + object.user&.invited? + end + + def created_by_application? + object.user&.created_by_application_id&.present? + end +end diff --git a/app/serializers/rest/admin/report_serializer.rb b/app/serializers/rest/admin/report_serializer.rb new file mode 100644 index 000000000..7a77132c0 --- /dev/null +++ b/app/serializers/rest/admin/report_serializer.rb @@ -0,0 +1,16 @@ +# frozen_string_literal: true + +class REST::Admin::ReportSerializer < ActiveModel::Serializer + attributes :id, :action_taken, :comment, :created_at, :updated_at + + has_one :account, serializer: REST::Admin::AccountSerializer + has_one :target_account, serializer: REST::Admin::AccountSerializer + has_one :assigned_account, serializer: REST::Admin::AccountSerializer + has_one :action_taken_by_account, serializer: REST::Admin::AccountSerializer + + has_many :statuses, serializer: REST::StatusSerializer + + def id + object.id.to_s + end +end diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index 98c53c84a..e913f0c64 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -3,9 +3,9 @@ class REST::InstanceSerializer < ActiveModel::Serializer include RoutingHelper - attributes :uri, :title, :description, :email, + attributes :uri, :title, :short_description, :description, :email, :version, :urls, :stats, :thumbnail, :max_toot_chars, :poll_limits, - :languages, :registrations + :languages, :registrations, :approval_required has_one :contact_account, serializer: REST::AccountSerializer @@ -19,6 +19,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer Setting.site_title end + def short_description + Setting.site_short_description + end + def description Setting.site_description end @@ -68,6 +72,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode end + def approval_required + Setting.registrations_mode == 'approved' + end + private def instance_presenter |