class Hubspot::Properties
Constants
- DEFAULT_PROPERTY
- PROPERTY_SPECS
Public Class Methods
add_default_parameters(opts={})
click to toggle source
TODO: properties can be set as configuration TODO: find the way how to set a list of Properties
+ merge same property key if present from opts
# File lib/hubspot/properties.rb, line 16 def add_default_parameters(opts={}) if opts.keys.map(&:to_s).include? 'property' opts else opts.merge(property: DEFAULT_PROPERTY) end end
all(path, opts={}, filter={})
click to toggle source
# File lib/hubspot/properties.rb, line 24 def all(path, opts={}, filter={}) response = Hubspot::Connection.get_json(path, opts) filter_results(response, :groupName, filter[:include], filter[:exclude]) end
create!(path, params={})
click to toggle source
# File lib/hubspot/properties.rb, line 34 def create!(path, params={}) post_data = valid_property_params(params) return nil if post_data.blank? Hubspot::Connection.post_json(path, params: {}, body: post_data) end
create_group!(path, params={})
click to toggle source
# File lib/hubspot/properties.rb, line 51 def create_group!(path, params={}) post_data = valid_group_params(params) return nil if post_data.blank? Hubspot::Connection.post_json(path, params: {}, body: post_data) end
delete!(path, property_name)
click to toggle source
# File lib/hubspot/properties.rb, line 46 def delete!(path, property_name) response = Hubspot::Connection.delete_json(path, property_name: property_name) response.parsed_response end
delete_group!(path, group_name)
click to toggle source
# File lib/hubspot/properties.rb, line 63 def delete_group!(path, group_name) response = Hubspot::Connection.delete_json(path, group_name: group_name) response.parsed_response end
groups(path, opts={}, filter={})
click to toggle source
# File lib/hubspot/properties.rb, line 29 def groups(path, opts={}, filter={}) response = Hubspot::Connection.get_json(path, opts) filter_results(response, :name, filter[:include], filter[:exclude]) end
same?(src, dst)
click to toggle source
# File lib/hubspot/properties.rb, line 68 def same?(src, dst) src_params = valid_params(src) dst_params = valid_params(dst) src_params.eql?(dst_params) # hash_same?(src_params, dst_params) end
update!(path, property_name, params={})
click to toggle source
# File lib/hubspot/properties.rb, line 40 def update!(path, property_name, params={}) post_data = valid_property_params(params) return nil if post_data.blank? Hubspot::Connection.put_json(path, params: { property_name: property_name }, body: post_data) end
update_group!(path, group_name, params={})
click to toggle source
# File lib/hubspot/properties.rb, line 57 def update_group!(path, group_name, params={}) post_data = valid_group_params(params) return nil if post_data.blank? Hubspot::Connection.put_json(path, params: { group_name: group_name }, body: post_data) end
valid_params(params={})
click to toggle source
# File lib/hubspot/properties.rb, line 75 def valid_params(params={}) valid_property_params(params) end
Private Class Methods
check_field_type(val)
click to toggle source
# File lib/hubspot/properties.rb, line 105 def check_field_type(val) return true if PROPERTY_SPECS[:valid_field_types].include?(val) puts "Invalid field type: #{val}" false end
check_type(val)
click to toggle source
# File lib/hubspot/properties.rb, line 111 def check_type(val) return true if PROPERTY_SPECS[:valid_types].include?(val) puts "Invalid type: #{val}" false end
filter_results(results, key, include, exclude)
click to toggle source
# File lib/hubspot/properties.rb, line 81 def filter_results(results, key, include, exclude) key = key.to_s results.select { |result| (include.blank? || include.include?(result[key])) && (exclude.blank? || !exclude.include?(result[key])) } end
valid_group_params(params)
click to toggle source
# File lib/hubspot/properties.rb, line 98 def valid_group_params(params) return {} if params.blank? result = params.slice(*PROPERTY_SPECS[:group_field_names]) result['properties'] = valid_property_params(result['properties']) unless result['properties'].blank? result end
valid_option_params(options)
click to toggle source
# File lib/hubspot/properties.rb, line 117 def valid_option_params(options) return [] if options.blank? options.map { |o| o.slice(*PROPERTY_SPECS[:options]) } end
valid_property_params(params)
click to toggle source
# File lib/hubspot/properties.rb, line 89 def valid_property_params(params) return {} if params.blank? result = params.slice(*PROPERTY_SPECS[:field_names]) result.delete('fieldType') unless check_field_type(result['fieldType']) result.delete('type') unless check_type(result['type']) result['options'] = valid_option_params(result['options']) result end