Sha256: 1a9f482fed0ba80a9a709a3c034f0ce066a62ef9ca2def249daa489ac69178bd

Contents?: true

Size: 754 Bytes

Versions: 4

Compression:

Stored size: 754 Bytes

Contents

# frozen_string_literal: true
class Zendesk2::Search
  include Zendesk2::Request

  request_method :get
  request_body { |r| { query: r.query } }
  request_path { |_| '/search.json' }

  page_params!

  attr_reader :query

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

  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
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
zendesk2-1.15.0 lib/zendesk2/search.rb
zendesk2-1.13.1 lib/zendesk2/search.rb
zendesk2-1.13.0 lib/zendesk2/search.rb
zendesk2-1.12.0 lib/zendesk2/search.rb