Sha256: a59f94fcc15c8feed9d0b098c148a98d439b1c9003663f670b9165e34d77351c

Contents?: true

Size: 979 Bytes

Versions: 9

Compression:

Stored size: 979 Bytes

Contents

require 'intercom/collection_proxy'

module Intercom
  module ApiOperations
    module FindAll
      module ClassMethods
        def find_all(params)
          raise BadRequestError, "#{self}#find takes a hash as it's parameter but you supplied #{params.inspect}" unless params.is_a? Hash
          collection_name = Utils.resource_class_to_collection_name(self)
          finder_details = {}
          if params[:id] && !type_switched_finder?(params)
            finder_details[:url] = "/#{collection_name}/#{params[:id]}"
            finder_details[:params] = {}
          else
            finder_details[:url] = "/#{collection_name}"
            finder_details[:params] = params
          end
          CollectionProxy.new(collection_name, finder_details)
        end

        private

        def type_switched_finder?(params)
          params.include?(:type)
        end
      end

      def self.included(base)
        base.extend(ClassMethods)
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
intercom-2.1.4 lib/intercom/api_operations/find_all.rb
intercom-2.1.3 lib/intercom/api_operations/find_all.rb
intercom-2.1.2 lib/intercom/api_operations/find_all.rb
intercom-2.1.1 lib/intercom/api_operations/find_all.rb
intercom-2.1.0 lib/intercom/api_operations/find_all.rb
intercom-2.0.3 lib/intercom/api_operations/find_all.rb
intercom-2.0.2 lib/intercom/api_operations/find_all.rb
intercom-2.0.1 lib/intercom/api_operations/find_all.rb
intercom-2.0.0 lib/intercom/api_operations/find_all.rb