Class: FlexmlsApi::Models::StandardFields
- Extended by:
- Finders
- Defined in:
- lib/flexmls_api/models/standard_fields.rb
Constant Summary
Constants included from Paginate
Instance Attribute Summary
Attributes inherited from Base
#attributes, #changed, #errors
Class Method Summary collapse
-
.find_and_expand_all(fields, arguments = {}, max_list_size = 1000) ⇒ Object
expand all fields passed in.
-
.find_nearby(prop_types = ["A"], arguments = {}) ⇒ Object
find_nearby: find fields nearby via lat/lon.
Methods included from Finders
Methods inherited from Base
#connection, connection, count, element_name, element_name=, first, get, #initialize, #load, #method_missing, #parse_id, path, prefix, prefix=, #respond_to?
Methods included from Paginate
#collect, #paginate, #per_page
Constructor Details
This class inherits a constructor from FlexmlsApi::Models::Base
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class FlexmlsApi::Models::Base
Class Method Details
.find_and_expand_all(fields, arguments = {}, max_list_size = 1000) ⇒ Object
expand all fields passed in
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
# File 'lib/flexmls_api/models/standard_fields.rb', line 8 def self.(fields, arguments={}, max_list_size=1000) returns = {} # find all standard fields, but expand only the location fields # TODO: when _expand support is added to StandardFields API, use the following # standard_fields = find(:all, {:ApiUser => owner, :_expand => fields.join(",")}) standard_fields = find(:all, arguments) # filter through the list and return only the location fields found fields.each do |field| # search for field in the payload if standard_fields.first.attributes.has_key?(field) returns[field] = standard_fields.first.attributes[field] # lookup fully _expand field, if the field has a list if returns[field]['HasList'] && returns[field]['MaxListSize'].to_i <= max_list_size returns[field] = connection.get("/standardfields/#{field}", arguments).first[field] end end end returns end |
.find_nearby(prop_types = ["A"], arguments = {}) ⇒ Object
find_nearby: find fields nearby via lat/lon
35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/flexmls_api/models/standard_fields.rb', line 35 def self.find_nearby(prop_types = ["A"], arguments={}) return_json = {"D" => {"Success" => true, "Results" => []} } # add _expand=1 so the fields are returned arguments.merge!({:_expand => 1}) # find and return return_json["D"]["Results"] = connection.get("/standardfields/nearby/#{prop_types.join(',')}", arguments) # return return_json end |