Module: Hubspot::ResourceFilter::FilterGroupMethods
- Included in:
- PagedCollection, Hubspot::Resource
- Defined in:
- lib/hubspot/resource_filter.rb
Constant Summary collapse
- OPERATOR_MAP =
Simplified search interface
{ '_contains' => 'CONTAINS_TOKEN', '_gt' => 'GT', '_lt' => 'LT', '_gte' => 'GTE', '_lte' => 'LTE', '_neq' => 'NEQ', '_in' => 'IN' }.freeze
Instance Method Summary collapse
-
#build_filter_groups(filters) ⇒ Object
Convert simple filters to HubSpot’s filterGroups format.
-
#extract_property_and_operator(key, value) ⇒ Object
Extract property name and operator from the key.
Instance Method Details
#build_filter_groups(filters) ⇒ Object
Convert simple filters to HubSpot’s filterGroups format
18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/hubspot/resource_filter.rb', line 18 def build_filter_groups(filters) filter_groups = [{ filters: [] }] filters.each do |key, value| filter = extract_property_and_operator(key, value) value_key = value.is_a?(Array) ? :values : :value filter[value_key] = value unless value.blank? filter_groups.first[:filters] << filter end filter_groups end |
#extract_property_and_operator(key, value) ⇒ Object
Extract property name and operator from the key
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/hubspot/resource_filter.rb', line 32 def extract_property_and_operator(key, value) return { propertyName: key.to_s, operator: 'NOT_HAS_PROPERTY' } if value.blank? OPERATOR_MAP.each do |suffix, hubspot_operator| if key.to_s.end_with?(suffix) return { propertyName: key.to_s.sub(suffix, ''), operator: hubspot_operator } end end # Default to 'EQ' operator if no suffix is found { propertyName: key.to_s, operator: 'EQ' } end |