class GdsApi::FinderApi

def documents_url(finder_slug, options = {})

def documents_url(finder_slug, options = {})
  finder_url(finder_slug, 'documents', options)
end

def finder_url(finder_slug, action, options = {})

def finder_url(finder_slug, action, options = {})
  "#{endpoint}/finders/#{CGI.escape(finder_slug)}/#{action}.json#{query_string(options)}"
end

def get_documents(finder_slug, options = {})

def get_documents(finder_slug, options = {})
  get_json(documents_url(finder_slug, options))
end

def get_schema(finder_slug, options = {})

def get_schema(finder_slug, options = {})
  @schema_factory.call(
    get_json(finder_url(finder_slug, 'schema', options)).to_hash
  )
end

def initialize(url, options = {})

def initialize(url, options = {})
  @schema_factory = options.fetch(:schema_factory) { FinderSchema.method(:new) }
  super
end