before_action :set_account
after_action :insert_pagination_headers
- respond_to :json
-
def index
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
before_action :set_account
after_action :insert_pagination_headers
- respond_to :json
-
def index
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
before_action :require_user!
before_action :set_account
- respond_to :json
-
def index
@proofs = @account.identity_proofs.active
render json: @proofs, each_serializer: REST::IdentityProofSerializer
before_action :require_user!
before_action :set_account
- respond_to :json
-
def index
@lists = @account.lists.where(account: current_account)
render json: @lists, each_serializer: REST::ListSerializer
before_action :require_user!
before_action :set_account
- respond_to :json
-
def create
AccountPin.create!(account: current_account, target_account: @account)
render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships_presenter
before_action -> { doorkeeper_authorize! :read, :'read:follows' }
before_action :require_user!
- respond_to :json
-
def index
accounts = Account.where(id: account_ids).select('id')
# .where doesn't guarantee that our results are in the same order
before_action -> { doorkeeper_authorize! :read, :'read:accounts' }
before_action :require_user!
- respond_to :json
-
def show
@accounts = account_search
render json: @accounts, each_serializer: REST::AccountSerializer
after_action :insert_pagination_headers, unless: -> { truthy_param?(:pinned) }
- respond_to :json
-
def index
@statuses = load_statuses
render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id)
skip_before_action :require_authenticated_user!, only: :create
- respond_to :json
-
def show
render json: @account, serializer: REST::AccountSerializer
end
class Api::V1::Apps::CredentialsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read }
- respond_to :json
-
def show
render json: doorkeeper_token.application, serializer: REST::ApplicationSerializer, fields: %i(name website vapid_key)
end
before_action :require_user!
after_action :insert_pagination_headers
- respond_to :json
-
def index
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
before_action :require_user!
after_action :insert_pagination_headers
- respond_to :json
-
def index
@statuses = load_statuses
render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id)
before_action :set_conversation, except: :index
after_action :insert_pagination_headers, only: :index
- respond_to :json
-
def index
@conversations = paginated_conversations
render json: @conversations, each_serializer: REST::ConversationSerializer
# frozen_string_literal: true
class Api::V1::CustomEmojisController < Api::BaseController
- respond_to :json
-
skip_before_action :set_cache_headers
def index
before_action :require_user!
after_action :insert_pagination_headers, only: :show
- respond_to :json
-
def show
@blocks = load_domain_blocks
render json: @blocks.map(&:domain)
before_action :require_user!
after_action :insert_pagination_headers
- respond_to :json
-
def index
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
before_action :require_user!
after_action :insert_pagination_headers
- respond_to :json
-
def index
@statuses = load_statuses
render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id)
class Api::V1::FeaturedTags::SuggestionsController < Api::BaseController
before_action -> { doorkeeper_authorize! :read, :'read:accounts' }, only: :index
-
before_action :require_user!
before_action :set_most_used_tags, only: :index
- respond_to :json
-
def index
render json: @most_used_tags, each_serializer: REST::TagSerializer
end
before_action :set_filters, only: :index
before_action :set_filter, only: [:show, :update, :destroy]
- respond_to :json
-
def index
render json: @filters, each_serializer: REST::FilterSerializer
end
skip_before_action :set_cache_headers
skip_before_action :require_authenticated_user!, unless: :whitelist_mode?
- respond_to :json
-
def show
expires_in 1.day, public: true
render_with_cache json: :activity, expires_in: 1.day
skip_before_action :set_cache_headers
skip_before_action :require_authenticated_user!, unless: :whitelist_mode?
- respond_to :json
-
def index
expires_in 1.day, public: true
render_with_cache(expires_in: 1.day) { Account.remote.domains }
# frozen_string_literal: true
class Api::V1::InstancesController < Api::BaseController
- respond_to :json
-
skip_before_action :set_cache_headers
skip_before_action :require_authenticated_user!, unless: :whitelist_mode?
before_action -> { doorkeeper_authorize! :write, :'write:media' }
before_action :require_user!
- respond_to :json
-
def create
@media = current_account.media_attachments.create!(media_params)
render json: @media, serializer: REST::MediaAttachmentSerializer
before_action :require_user!
after_action :insert_pagination_headers
- respond_to :json
-
def index
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
before_action :require_user!
after_action :insert_pagination_headers, only: :index
- respond_to :json
-
DEFAULT_NOTIFICATIONS_LIMIT = 15
def index
before_action :require_user!
before_action :set_poll
- respond_to :json
-
def create
VoteService.new.call(current_account, @poll, vote_params[:choices])
render json: @poll, serializer: REST::PollSerializer
before_action :set_poll
before_action :refresh_poll
- respond_to :json
-
def show
render json: @poll, serializer: REST::PollSerializer, include_results: true
end
before_action -> { doorkeeper_authorize! :read, :'read:accounts' }
before_action :require_user!
- respond_to :json
-
def index
render json: current_account, serializer: REST::PreferencesSerializer
end
before_action -> { doorkeeper_authorize! :write, :'write:reports' }, only: [:create]
before_action :require_user!
- respond_to :json
-
def create
@report = ReportService.new.call(
current_account,
before_action :require_user!
before_action :set_status
- respond_to :json
-
def create
current_account.bookmarks.find_or_create_by!(account: current_account, status: @status)
render json: @status, serializer: REST::StatusSerializer
before_action :set_status
after_action :insert_pagination_headers
- respond_to :json
-
def index
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
before_action :require_user!
before_action :set_status
- respond_to :json
-
def create
FavouriteService.new.call(current_account, @status)
render json: @status, serializer: REST::StatusSerializer
before_action :set_status
before_action :set_conversation
- respond_to :json
-
def create
current_account.mute_conversation!(@conversation)
@mutes_map = { @conversation.id => true }
before_action :require_user!
before_action :set_status
- respond_to :json
-
def create
StatusPin.create!(account: current_account, status: @status)
distribute_add_activity!
before_action :set_status
after_action :insert_pagination_headers
- respond_to :json
-
def index
@accounts = load_accounts
render json: @accounts, each_serializer: REST::AccountSerializer
before_action :require_user!
before_action :set_reblog
- respond_to :json
-
def create
@status = ReblogService.new.call(current_account, @reblog, reblog_params)
render json: @status, serializer: REST::StatusSerializer
before_action :require_user!, except: [:show, :context]
before_action :set_status, only: [:show, :context]
- respond_to :json
-
# This API was originally unlimited, pagination cannot be introduced without
# breaking backwards-compatibility. Arbitrarily high number to cover most
# conversations as quasi-unlimited, it would be too much work to render more
# frozen_string_literal: true
class Api::V1::StreamingController < Api::BaseController
- respond_to :json
-
def index
if Rails.configuration.x.streaming_api_base_url != request.host
redirect_to streaming_api_url, status: 301
before_action :require_user!
before_action :set_accounts
- respond_to :json
-
def index
render json: @accounts, each_serializer: REST::AccountSerializer
end
before_action :require_user!, only: [:show]
after_action :insert_pagination_headers, unless: -> { @statuses.empty? }
- respond_to :json
-
def show
@statuses = load_statuses
before_action :require_user!, only: [:show], if: :require_auth?
after_action :insert_pagination_headers, unless: -> { @statuses.empty? }
- respond_to :json
-
def show
@statuses = load_statuses
render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id)
before_action :load_tag
after_action :insert_pagination_headers, unless: -> { @statuses.empty? }
- respond_to :json
-
def show
@statuses = load_statuses
render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id)
class Api::V1::TrendsController < Api::BaseController
before_action :set_tags
- respond_to :json
-
def index
render json: @tags, each_serializer: REST::TagSerializer
end
before_action -> { doorkeeper_authorize! :read, :'read:search' }
before_action :require_user!
- respond_to :json
-
def index
@search = Search.new(search_results)
render json: @search, serializer: REST::SearchSerializer
# frozen_string_literal: true
class Api::Web::EmbedsController < Api::Web::BaseController
- respond_to :json
-
before_action :require_user!
def create
# frozen_string_literal: true
class Api::Web::PushSubscriptionsController < Api::Web::BaseController
- respond_to :json
-
before_action :require_user!
def create
# frozen_string_literal: true
class Api::Web::SettingsController < Api::Web::BaseController
- respond_to :json
-
before_action :require_user!
def update