Module: Jamf::Filterable

Included in:
APIClient, APIRole, InventoryPreloadRecord, JpBuilding
Defined in:
lib/jamf/api/jamf_pro/mixins/filterable.rb

Overview

process filter strings for resources with filter request parameters

This should be extended into CollectionResources whose LIST_PATH is filterable

Classes doing so must define the FILTER_KEYS constant, an Array of Symbols of keys from OAPI_PROPERTIES which can be used in filters.

Constant Summary collapse

FILTER_PARAM_PREFIX =
'&filter='.freeze

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.extended(extender) ⇒ Object



36
37
38
# File 'lib/jamf/api/jamf_pro/mixins/filterable.rb', line 36

def self.extended(extender)
  Jamf.load_msg "--> #{extender} is extending Jamf::Filterable"
end

.parse_url_filter_param(filter) ⇒ Object

generate the RSQL filter to put into the url This is callable from anywhere without mixing in.



44
45
46
47
48
# File 'lib/jamf/api/jamf_pro/mixins/filterable.rb', line 44

def self.parse_url_filter_param(filter)
  return filter if filter.nil? || filter.start_with?(FILTER_PARAM_PREFIX)

  "#{FILTER_PARAM_PREFIX}#{CGI.escape filter}"
end

Instance Method Details

#filter_keysObject



50
51
52
# File 'lib/jamf/api/jamf_pro/mixins/filterable.rb', line 50

def filter_keys
  defined?(self::FILTER_KEYS) ? self::FILTER_KEYS : []
end