Class: Swiftype::DocumentType
Constant Summary
Constants included
from Search
Search::VALID_SEARCH_OPTIONS, Search::VALID_SUGGEST_OPTIONS
Instance Method Summary
collapse
Methods included from Search
#parse_options, #parse_search_options, #parse_suggest_options
Methods inherited from BaseModel
collection_name, #create!, #destroy!, #id, #identifier, model_name, parents, #path_to_collection, #path_to_model, #raw_path_to_collection, #raw_path_to_model, #reload, #slugged?, #to_hash, #to_json, #update!, #update_with!
Methods included from Request
#delete, #get, #post, #put
Methods included from Connection
#connection
Instance Method Details
#build_document(params = {}) ⇒ Object
6
7
8
9
10
11
|
# File 'lib/swiftype/document_type.rb', line 6
def build_document(params={})
Document.new({
:document_type_id => id || slug,
:engine_id => engine_id
}.merge(params))
end
|
#create_document(params = {}) ⇒ Object
13
14
15
16
17
|
# File 'lib/swiftype/document_type.rb', line 13
def create_document(params={})
doc = build_document(params)
doc.create!
doc
end
|
#create_documents(documents = []) ⇒ Object
19
20
21
|
# File 'lib/swiftype/document_type.rb', line 19
def create_documents(documents=[])
post("engines/#{engine_id}/document_types/#{slug}/documents/bulk_create.json", {:documents => documents})
end
|
#destroy_document(document_id) ⇒ Object
32
33
34
35
36
|
# File 'lib/swiftype/document_type.rb', line 32
def destroy_document(document_id)
!!delete("engines/#{engine_id}/document_types/#{slug}/documents/#{document_id}")
rescue NonExistentRecord
false
end
|
#destroy_documents(document_ids = []) ⇒ Object
38
39
40
41
42
|
# File 'lib/swiftype/document_type.rb', line 38
def destroy_documents(document_ids=[])
post("engines/#{engine_id}/document_types/#{slug}/documents/bulk_destroy.json", {:documents => document_ids})
rescue NonExistentRecord
false
end
|
#document(id) ⇒ Object
44
45
46
|
# File 'lib/swiftype/document_type.rb', line 44
def document(id)
Document.new get("engines/#{engine_id}/document_types/#{slug}/documents/#{id}.json")
end
|
#documents ⇒ Object
52
53
54
|
# File 'lib/swiftype/document_type.rb', line 52
def documents
get("engines/#{engine_id}/document_types/#{slug}/documents.json").map { |d| Document.new(d) }
end
|
#engine ⇒ Object
48
49
50
|
# File 'lib/swiftype/document_type.rb', line 48
def engine
Engine.find(engine_id)
end
|
#search(query, options = {}) ⇒ Object
64
65
66
67
68
69
70
|
# File 'lib/swiftype/document_type.rb', line 64
def search(query, options={})
search_params = { :q => query }.merge(parse_search_options(options))
response = post("engines/#{engine_id}/document_types/#{slug}/search.json", search_params)
results = {}
response['records'].each { |document_type, records| results[document_type] = records.map { |d| Swiftype::Document.new(d) }}
results
end
|
#suggest(query, options = {}) ⇒ Object
56
57
58
59
60
61
62
|
# File 'lib/swiftype/document_type.rb', line 56
def suggest(query, options={})
search_params = { :q => query }.merge(parse_suggest_options(options))
response = post("engines/#{engine_id}/document_types/#{slug}/suggest.json", search_params)
results = {}
response['records'].each { |document_type, records| results[document_type] = records.map { |d| Swiftype::Document.new(d) }}
results
end
|
#update_document(document = {}) ⇒ Object
27
28
29
30
|
# File 'lib/swiftype/document_type.rb', line 27
def update_document(document={})
document_id = document[:external_id]
put("engines/#{engine_id}/document_types/#{slug}/documents/#{document_id}/update_fields", {:fields => document[:fields]})
end
|
#update_documents(documents = []) ⇒ Object
23
24
25
|
# File 'lib/swiftype/document_type.rb', line 23
def update_documents(documents=[])
put("engines/#{engine_id}/document_types/#{slug}/documents/bulk_update.json", {:documents => documents})
end
|