0
@@ -105,43 +105,43 @@ module DataMapper
0
@connection = SalesforceAPI::Connection.new(URI.unescape(@uri.user), @uri.password, "#{ENV["HOME"]}/.salesforce/#{basename}").driver
0
- def read_set(repository, query)
0
+ repository = query.repository
0
properties = query.fields
0
properties_with_indexes = Hash[*properties.zip((0...properties.size).to_a).flatten]
0
-
set = Collection.new(query)0
+
Collection.new(query) do |set|0
-
conditions = query.conditions.map {|c| SQL.from_condition(c, repository)}.compact.join(") AND (")
0
+
conditions = query.conditions.map {|c| SQL.from_condition(c, repository)}.compact.join(") AND (")
0
- query_string = "SELECT #{query.fields.map {|f| f.field}.join(", ")} from #{query.model.storage_name(repository.name)}"
0
- query_string << " WHERE (#{conditions})" unless conditions.empty?
0
- query_string << " ORDER BY #{SQL.order(query.order[0])}" unless query.order.empty?
0
- query_string << " LIMIT #{query.limit}" if query.limit
0
+ query_string = "SELECT #{query.fields.map {|f| f.field}.join(", ")} from #{query.model.storage_name(repository.name)}"
0
+ query_string << " WHERE (#{conditions})" unless conditions.empty?
0
+ query_string << " ORDER BY #{SQL.order(query.order[0])}" unless query.order.empty?
0
+ query_string << " LIMIT #{query.limit}" if query.limit
0
-
DataMapper.logger.debug query_string
0
+
DataMapper.logger.debug query_string
0
- results = @connection.query(:queryString => query_string).result
0
- rescue SOAP::FaultError => e
0
- raise SalesforceAPI::ReadError, e.message
0
+ results = @connection.query(:queryString => query_string).result
0
+ rescue SOAP::FaultError => e
0
+ raise SalesforceAPI::ReadError, e.message
0
- results = results.size > 0 ? results.records : []
0
- results.each do |result|
0
- props = properties_with_indexes.inject([]) do |accum, (prop, idx)|
0
- accum[idx] = result.send(soap_attr(prop))
0
+ results = results.size > 0 ? results.records : []
0
+ results.each do |result|
0
+ props = properties_with_indexes.inject([]) do |accum, (prop, idx)|
0
+ accum[idx] = result.send(soap_attr(prop))
0
- def read(repository, resource, key)
0
- read_set(repository, DataMapper::Query.new(repository, resource,
0
- {resource.key(repository.name)[0].name.eql => key[0]})).first
0
+ read_many(query).first
0
def update(repository, resource)
Comments
No one has commented yet.