Sha256: 1e46644c276ce97263d449ee0eef0508a47c789b882a0a5c1b7e282edb19517e

Contents?: true

Size: 2 KB

Versions: 29

Compression:

Stored size: 2 KB

Contents

require "pact_broker/ui/controllers/base_controller"
require "pact_broker/ui/view_models/index_items"
require "haml"

module PactBroker
  module UI
    module Controllers
      class Index < Base
        include PactBroker::Services

        get "/" do
          set_headers
          tags = if params[:tags]
                   params[:tags] == "true" ? true : [*params[:tags]].compact
                 end
          search = params[:search].present? ? params[:search] : nil
          page_number = params[:page]&.to_i || 1
          # Make page size smaller for data intensive query
          page_size = params[:pageSize]&.to_i || (tags == true ? 30 : 100)
          options = {
            tags: tags,
            page_number: page_number,
            page_size: page_size,
            search: search
          }.compact
          error_messages = []

          index_items = index_service.find_index_items(options)

          if index_items.blank? && !search.blank?
            error_messages << "No pacticipants found matching: \"#{search}\""
          end

          view_index_items = ViewDomain::IndexItems.new(index_items, base_url: base_url)

          page = tags ? :'index/show-with-tags' : :'index/show'
          locals = {
            title: PactBroker::Messages.message("messages.index.title"),
            index_items: view_index_items,
            page_number: page_number,
            page_size: page_size,
            pagination_record_count: view_index_items.pagination_record_count,
            current_page_size: view_index_items.size,
            base_url: base_url,
            errors: error_messages,
            tags: tags,
            search: search
          }

          haml page, { locals: locals, layout: :'layouts/main', escape_html: true }
        end

        private

        def set_headers
          response.headers["Cache-Control"] = "no-cache, no-store, must-revalidate"
          response.headers["Pragma"] = "no-cache"
          response.headers["Expires"] = "0"
        end
      end
    end
  end
end

Version data entries

29 entries across 29 versions & 1 rubygems

Version Path
pact_broker-2.101.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.100.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.99.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.98.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.97.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.96.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.95.1 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.95.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.94.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.93.4 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.93.3 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.93.2 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.93.1 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.93.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.92.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.91.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.90.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.89.1 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.89.0 lib/pact_broker/ui/controllers/index.rb
pact_broker-2.88.0 lib/pact_broker/ui/controllers/index.rb