Class: Zendesk2::Search

Inherits:
Object
  • Object
show all
Includes:
Request
Defined in:
lib/zendesk2/search.rb

Instance Attribute Summary collapse

Attributes included from Request

#params

Instance Method Summary collapse

Methods included from Request

cistern_included, #data, #delete!, #error!, #find!, #html_url_for, included, #mock_response, #page, #page_params!, #page_params?, #pluralize, #real, #real_request, #request_body, #request_params, #request_path, #resources, #response, #timestamp, #url_for

Instance Attribute Details

#queryObject (readonly)

Returns the value of attribute query.



11
12
13
# File 'lib/zendesk2/search.rb', line 11

def query
  @query
end

Instance Method Details

#call(query, params) ⇒ Object



13
14
15
16
# File 'lib/zendesk2/search.rb', line 13

def call(query, params)
  @query = query
  super(params)
end

#mockObject



18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/zendesk2/search.rb', line 18

def mock
  terms = Hash[query.split(' ').map { |t| t.split(':') }]
  type  = terms.delete('type')

  collection = if type.nil?
                 cistern.data.values
               else
                 cistern.data[pluralize(type).to_sym]
               end

  results = collection.values.select { |v| terms.all? { |term, condition| v[term].to_s == condition.to_s } }

  page(results, params: { 'query' => query }, root: 'results')
end