Welcome to mirror list, hosted at ThFree Co, Russian Federation.

base.rb « pagination « gitlab « lib - gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 90fa1f8d1ec0a125cab6b0e493b772b2bd24c5da (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# frozen_string_literal: true

module Gitlab
  module Pagination
    class Base
      private

      def per_page
        @per_page ||= params[:per_page]
      end

      def base_request_uri
        @base_request_uri ||= URI.parse(request.url).tap do |uri|
          uri.host = Gitlab.config.gitlab.host
          uri.port = Gitlab.config.gitlab.port
        end
      end

      def build_page_url(query_params:)
        base_request_uri.tap do |uri|
          uri.query = query_params
        end.to_s
      end

      def page_href(next_page_params = {})
        query_params = params.merge(**next_page_params, per_page: per_page).to_query

        build_page_url(query_params: query_params)
      end
    end
  end
end