about summary refs log tree commit diff
path: root/app/controllers
diff options
context:
space:
mode:
authorJenkins <jenkins@jenkins.ninjawedding.org>2017-12-06 20:17:13 +0000
committerJenkins <jenkins@jenkins.ninjawedding.org>2017-12-06 20:17:13 +0000
commit8ca91cef45417947607079118b1af07c9774ae58 (patch)
treecafbe6cc30563ca35ffa522056ead63ca450d9c1 /app/controllers
parentf2f2f1032082d6212771bd0307136484f671d37e (diff)
parenta0047fdca052088cce0e23c3b58b95f13be19805 (diff)
Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/api/v1/accounts/search_controller.rb9
-rw-r--r--app/controllers/api/v1/accounts_controller.rb2
-rw-r--r--app/controllers/api/v1/lists/accounts_controller.rb18
-rw-r--r--app/controllers/well_known/webfinger_controller.rb19
4 files changed, 24 insertions, 24 deletions
diff --git a/app/controllers/api/v1/accounts/search_controller.rb b/app/controllers/api/v1/accounts/search_controller.rb
index 2a5cac547..11e647c3c 100644
--- a/app/controllers/api/v1/accounts/search_controller.rb
+++ b/app/controllers/api/v1/accounts/search_controller.rb
@@ -17,12 +17,13 @@ class Api::V1::Accounts::SearchController < Api::BaseController
     AccountSearchService.new.call(
       params[:q],
       limit_param(DEFAULT_ACCOUNTS_LIMIT),
-      resolving_search?,
-      current_account
+      current_account,
+      resolve: truthy_param?(:resolve),
+      following: truthy_param?(:following)
     )
   end
 
-  def resolving_search?
-    params[:resolve] == 'true'
+  def truthy_param?(key)
+    params[key] == 'true'
   end
 end
diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb
index b1a2ed573..4e73e9e8b 100644
--- a/app/controllers/api/v1/accounts_controller.rb
+++ b/app/controllers/api/v1/accounts_controller.rb
@@ -51,7 +51,7 @@ class Api::V1::AccountsController < Api::BaseController
     @account = Account.find(params[:id])
   end
 
-  def relationships(options = {})
+  def relationships(**options)
     AccountRelationshipsPresenter.new([@account.id], current_user.account_id, options)
   end
 end
diff --git a/app/controllers/api/v1/lists/accounts_controller.rb b/app/controllers/api/v1/lists/accounts_controller.rb
index 40c485e8d..c29c73b3e 100644
--- a/app/controllers/api/v1/lists/accounts_controller.rb
+++ b/app/controllers/api/v1/lists/accounts_controller.rb
@@ -10,7 +10,7 @@ class Api::V1::Lists::AccountsController < Api::BaseController
   after_action :insert_pagination_headers, only: :show
 
   def show
-    @accounts = @list.accounts.paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id])
+    @accounts = load_accounts
     render json: @accounts, each_serializer: REST::AccountSerializer
   end
 
@@ -35,6 +35,14 @@ class Api::V1::Lists::AccountsController < Api::BaseController
     @list = List.where(account: current_account).find(params[:list_id])
   end
 
+  def load_accounts
+    if unlimited?
+      @list.accounts.all
+    else
+      @list.accounts.paginate_by_max_id(limit_param(DEFAULT_ACCOUNTS_LIMIT), params[:max_id], params[:since_id])
+    end
+  end
+
   def list_accounts
     Account.find(account_ids)
   end
@@ -52,12 +60,16 @@ class Api::V1::Lists::AccountsController < Api::BaseController
   end
 
   def next_path
+    return if unlimited?
+
     if records_continue?
       api_v1_list_accounts_url pagination_params(max_id: pagination_max_id)
     end
   end
 
   def prev_path
+    return if unlimited?
+
     unless @accounts.empty?
       api_v1_list_accounts_url pagination_params(since_id: pagination_since_id)
     end
@@ -78,4 +90,8 @@ class Api::V1::Lists::AccountsController < Api::BaseController
   def pagination_params(core_params)
     params.permit(:limit).merge(core_params)
   end
+
+  def unlimited?
+    params[:limit] == '0'
+  end
 end
diff --git a/app/controllers/well_known/webfinger_controller.rb b/app/controllers/well_known/webfinger_controller.rb
index 1c27b2b18..5cc606808 100644
--- a/app/controllers/well_known/webfinger_controller.rb
+++ b/app/controllers/well_known/webfinger_controller.rb
@@ -6,12 +6,10 @@ module WellKnown
 
     def show
       @account = Account.find_local!(username_from_resource)
-      @canonical_account_uri = @account.to_webfinger_s
-      @magic_key = pem_to_magic_key(@account.keypair.public_key)
 
       respond_to do |format|
         format.any(:json, :html) do
-          render formats: :json, content_type: 'application/jrd+json'
+          render json: @account, serializer: WebfingerSerializer, content_type: 'application/jrd+json'
         end
 
         format.xml do
@@ -35,21 +33,6 @@ module WellKnown
       WebfingerResource.new(resource_user).username
     end
 
-    def pem_to_magic_key(public_key)
-      modulus, exponent = [public_key.n, public_key.e].map do |component|
-        result = []
-
-        until component.zero?
-          result << [component % 256].pack('C')
-          component >>= 8
-        end
-
-        result.reverse.join
-      end
-
-      (['RSA'] + [modulus, exponent].map { |n| Base64.urlsafe_encode64(n) }).join('.')
-    end
-
     def resource_param
       params.require(:resource)
     end