Sha256: 43cfa8fb19cf6cc8331415837319750b81f1c0681c26bcf860289f65a8243ed7

Contents?: true

Size: 1.72 KB

Versions: 74

Compression:

Stored size: 1.72 KB

Contents

module SparkApi
  module Models
    class StandardFields < Base
      extend Finders
      self.element_name="standardfields"
      
      # expand all fields passed in
      def self.find_and_expand_all(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: find fields nearby via lat/lon
      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
      
    end
  end
end

Version data entries

74 entries across 74 versions & 1 rubygems

Version Path
spark_api-2.0.0 lib/spark_api/models/standard_fields.rb
spark_api-1.6.3 lib/spark_api/models/standard_fields.rb
spark_api-1.6.2 lib/spark_api/models/standard_fields.rb
spark_api-1.6.1 lib/spark_api/models/standard_fields.rb
spark_api-1.5.7 lib/spark_api/models/standard_fields.rb
spark_api-1.6.0 lib/spark_api/models/standard_fields.rb
spark_api-1.5.6 lib/spark_api/models/standard_fields.rb
spark_api-1.5.5 lib/spark_api/models/standard_fields.rb
spark_api-1.5.4 lib/spark_api/models/standard_fields.rb
spark_api-1.5.3 lib/spark_api/models/standard_fields.rb
spark_api-1.5.2 lib/spark_api/models/standard_fields.rb
spark_api-1.5.1 lib/spark_api/models/standard_fields.rb
spark_api-1.5.0 lib/spark_api/models/standard_fields.rb
spark_api-1.4.34 lib/spark_api/models/standard_fields.rb
spark_api-1.4.32 lib/spark_api/models/standard_fields.rb
spark_api-1.4.31 lib/spark_api/models/standard_fields.rb
spark_api-1.4.29 lib/spark_api/models/standard_fields.rb
spark_api-1.4.28 lib/spark_api/models/standard_fields.rb
spark_api-1.4.27 lib/spark_api/models/standard_fields.rb
spark_api-1.4.26 lib/spark_api/models/standard_fields.rb