class Gizmo::Find

Public Instance Methods

call(criteria, id=nil) click to toggle source

Find a single item using the provided criteria.

@param [Mongoid::Criteria] criteria the criteria to use for finding a single item @param [String, Moped::BSON::ObjectId] id the ID of the item being found

@return [Gizmo::Response]

# File lib/gizmo/find.rb, line 10
def call(criteria, id=nil)
  response = create_response
  if criteria.is_a? Mongoid::Criteria
    response.data = criteria.where(:id=>id).first
  elsif !criteria.respond_to?(:find) && id.nil?
    response.data = criteria
  else
    response.data = criteria.find id
  end
  raise Mongoid::Errors::DocumentNotFound.new(criteria.klass, :id=>id) if response.data.nil?
  response
end