Sha256: 29f545ffd9b30d364f0ee73f5355c00fa50fe6b0c0dd19415fdc70556d35fc33

Contents?: true

Size: 741 Bytes

Versions: 2

Compression:

Stored size: 741 Bytes

Contents

module Rpruby
  # Options of a request to search items
  class ItemSearchOptions
    MAPPING = {
      launch_id: 'filter.eq.launch',
      name: 'filter.eq.name',
      description: 'filter.eq.description',
      parameter_key: 'filter.eq.parameters$key',
      parameter_value: 'filter.eq.parameters$value',
      page_size: 'page.size',
      page_number: 'page.page'
    }.freeze

    attr_reader :query_params

    def initialize(params = {})
      @query_params = params.map { |mapping_key, v| [param_name(mapping_key), v] }.to_h
    end

    private

    def param_name(mapping_key)
      MAPPING.fetch(mapping_key) { raise KeyError, "key not found: '#{mapping_key.inspect}'. It should be one of: #{MAPPING.keys}" }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
rpruby-1.2.2 lib/rpruby/models/item_search_options.rb
rpruby-1.2.1 lib/rpruby/models/item_search_options.rb