diff options
author | Thibaut Girka <thib@sitedethib.com> | 2019-08-30 13:38:41 +0200 |
---|---|---|
committer | Thibaut Girka <thib@sitedethib.com> | 2019-08-30 13:38:41 +0200 |
commit | 9044a2b051da18e9f70fd4fae55c2bd232891d1f (patch) | |
tree | 0bf32b0fa0e854f75e50c1dee05ec41f6b301bf4 /app/controllers/api/v1/directories_controller.rb | |
parent | 2848c08953a8555e06791170dbf1090575e05d8a (diff) | |
parent | 49f57b55346f8e62d21a3c8bc63301038ecb796f (diff) |
Merge branch 'master' into glitch-soc/merge-upstream
Conflicts: - app/views/directories/index.html.haml Upstream has redesigned the profile directory, and we had a glitch-soc-specific change to hide follower counts. Ported that change to the new design.
Diffstat (limited to 'app/controllers/api/v1/directories_controller.rb')
-rw-r--r-- | app/controllers/api/v1/directories_controller.rb | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/app/controllers/api/v1/directories_controller.rb b/app/controllers/api/v1/directories_controller.rb new file mode 100644 index 000000000..c91543e3a --- /dev/null +++ b/app/controllers/api/v1/directories_controller.rb @@ -0,0 +1,30 @@ +# frozen_string_literal: true + +class Api::V1::DirectoriesController < Api::BaseController + before_action :require_enabled! + before_action :set_accounts + + def show + render json: @accounts, each_serializer: REST::AccountSerializer + end + + private + + def require_enabled! + return not_found unless Setting.profile_directory + end + + def set_accounts + @accounts = accounts_scope.offset(params[:offset]).limit(limit_param(DEFAULT_ACCOUNTS_LIMIT)) + end + + def accounts_scope + Account.discoverable.tap do |scope| + scope.merge!(Account.local) if truthy_param?(:local) + scope.merge!(Account.by_recent_status) if params[:order].blank? || params[:order] == 'active' + scope.merge!(Account.order(id: :desc)) if params[:order] == 'new' + scope.merge!(Account.not_excluded_by_account(current_account)) if current_account + scope.merge!(Account.not_domain_blocked_by_account(current_account)) if current_account && !truthy_param?(:local) + end + end +end |