Merge tag 'v2.9.2' into instance_only_statuses

This commit is contained in:
Renato "Lond" Cerqueira
2019-06-25 19:44:59 +02:00
534 changed files with 12629 additions and 7877 deletions

View File

@ -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

View File

@ -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

View File

@ -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,
: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
@ -55,6 +59,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

View File

@ -3,7 +3,7 @@
class REST::StatusSerializer < ActiveModel::Serializer
attributes :id, :created_at, :in_reply_to_id, :in_reply_to_account_id,
:sensitive, :spoiler_text, :visibility, :language,
:uri, :content, :url, :replies_count, :reblogs_count,
:uri, :url, :replies_count, :reblogs_count,
:favourites_count, :local_only
attribute :favourited, if: :current_user?
@ -11,6 +11,9 @@ class REST::StatusSerializer < ActiveModel::Serializer
attribute :muted, if: :current_user?
attribute :pinned, if: :pinnable?
attribute :content, unless: :source_requested?
attribute :text, if: :source_requested?
belongs_to :reblog, serializer: REST::StatusSerializer
belongs_to :application, if: :show_application?
belongs_to :account, serializer: REST::AccountSerializer
@ -105,6 +108,10 @@ class REST::StatusSerializer < ActiveModel::Serializer
%w(public unlisted).include?(object.visibility)
end
def source_requested?
instance_options[:source_requested]
end
def ordered_mentions
object.active_mentions.to_a.sort_by(&:id)
end