Class: ActiveSearch::Algolia::Client
- Inherits:
-
Object
- Object
- ActiveSearch::Algolia::Client
- Includes:
- HTTParty
- Defined in:
- lib/activesearch/algolia/client.rb
Class Method Summary collapse
Instance Method Summary collapse
- #delete(id) ⇒ Object
- #delete_index ⇒ Object
- #find_from_resource(type, id, &block) ⇒ Object
- #get(id) ⇒ Object
- #query_text(text, extras = {}, options = {}) ⇒ Object
- #save(id, object) ⇒ Object
Class Method Details
.configure(api_key, app_id, index = "activesearch") ⇒ Object
9 10 11 12 13 14 15 16 |
# File 'lib/activesearch/algolia/client.rb', line 9 def self.configure(api_key, app_id, index = "activesearch") base_uri "https://#{app_id}.algolia.io/1/indexes/#{index}" headers({ "X-Algolia-API-Key" => api_key, "X-Algolia-Application-Id" => app_id, "Content-Type" => "application/json; charset=utf-8" }) end |
Instance Method Details
#delete(id) ⇒ Object
22 23 24 25 |
# File 'lib/activesearch/algolia/client.rb', line 22 def delete(id) return false if id.nil? self.class.delete("/#{id}") end |
#delete_index ⇒ Object
18 19 20 |
# File 'lib/activesearch/algolia/client.rb', line 18 def delete_index self.class.delete("") end |
#find_from_resource(type, id, &block) ⇒ Object
47 48 49 50 51 52 53 54 |
# File 'lib/activesearch/algolia/client.rb', line 47 def find_from_resource(type, id, &block) query = { tags: "original_type:#{type},original_id:#{id}", query: '' } self.class.get('', query: query)['hits'].each(&block) end |
#get(id) ⇒ Object
43 44 45 |
# File 'lib/activesearch/algolia/client.rb', line 43 def get(id) self.class.get("/#{id}") end |
#query_text(text, extras = {}, options = {}) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/activesearch/algolia/client.rb', line 31 def query_text(text, extras = {}, = {}) page, per_page = [:page] || 0, [:per_page] || 20 response = self.class.get('', query: extras.merge!( query: text, page: page, hitsPerPage: per_page )) ResultsSet.new(response, page, per_page) end |
#save(id, object) ⇒ Object
27 28 29 |
# File 'lib/activesearch/algolia/client.rb', line 27 def save(id, object) self.class.put("/#{id}", body: object.to_json) end |