swiftype-enterprise 2.0.0 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/README.md +12 -4
- data/lib/swiftype-enterprise/client.rb +3 -23
- data/lib/swiftype-enterprise/configuration.rb +1 -1
- data/lib/swiftype-enterprise/version.rb +1 -1
- data/spec/client_spec.rb +5 -5
- data/spec/fixtures/vcr/async_create_or_update_document_success.yml +3 -3
- data/spec/fixtures/vcr/destroy_documents_success.yml +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 0d73928e6d01ff6eec555c4579ec5dd576b64e39
|
4
|
+
data.tar.gz: d6de4d034cf9fd60ed7578cb888b145b15c28237
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 006d6f3aeec117d7323e02517590e88f608efcdf45bb687e1f5013fcf6b6050484837e18650725053954c14790cb5e2103b8e73448d84cdcc4de3a5da919c0a5
|
7
|
+
data.tar.gz: 5603ef92625268c22c1fc007713e64b5590458a823c042e71d2ca80c4b27db8520aa869d81aec39ba58c1635f9125c0420c54ebc810517e5c41e7e4c3030fc83
|
data/README.md
CHANGED
@@ -31,6 +31,14 @@ Create a new instance of the Swiftype Enterprise Client with your access token:
|
|
31
31
|
SwiftypeEnterprise.access_token = '' # your access token
|
32
32
|
swiftype = SwiftypeEnterprise::Client.new
|
33
33
|
|
34
|
+
### Change API endpoint
|
35
|
+
|
36
|
+
```
|
37
|
+
swiftype = SwiftypeEnterprise::Client.new
|
38
|
+
SwiftypeEnterprise.endpoint = 'https://your-server.example.com/api/v1'
|
39
|
+
```
|
40
|
+
|
41
|
+
|
34
42
|
### Indexing Documents
|
35
43
|
|
36
44
|
This example shows how to use the index_documents method:
|
@@ -38,13 +46,13 @@ This example shows how to use the index_documents method:
|
|
38
46
|
content_source_key = '' # your content source key
|
39
47
|
documents = [
|
40
48
|
{
|
41
|
-
'
|
49
|
+
'id' => 'INscMGmhmX4',
|
42
50
|
'url' => 'http://www.youtube.com/watch?v=v1uyQZNg2vE',
|
43
51
|
'title' => 'The Original Grumpy Cat',
|
44
52
|
'body' => 'this is a test'
|
45
53
|
},
|
46
54
|
{
|
47
|
-
'
|
55
|
+
'id' => 'JNDFojsd02',
|
48
56
|
'url' => 'http://www.youtube.com/watch?v=tsdfhk2j',
|
49
57
|
'title' => 'Another Grumpy Cat',
|
50
58
|
'body' => 'this is also a test'
|
@@ -61,10 +69,10 @@ This example shows how to use the index_documents method:
|
|
61
69
|
### Destroying Documents
|
62
70
|
|
63
71
|
content_source_key = '' # your content source key
|
64
|
-
|
72
|
+
document_ids = ['INscMGmhmX4', 'JNDFojsd02']
|
65
73
|
|
66
74
|
begin
|
67
|
-
destroy_document_results = swiftype.destroy_documents(content_source_key,
|
75
|
+
destroy_document_results = swiftype.destroy_documents(content_source_key, document_ids)
|
68
76
|
# handle destroy document results
|
69
77
|
rescue SwiftypeEnterprise::ClientException => e
|
70
78
|
# handle error
|
@@ -41,18 +41,6 @@ module SwiftypeEnterprise
|
|
41
41
|
#
|
42
42
|
# For more information on indexing documents, see the {Content Source documentation}[https://app.swiftype.com/ent/docs/custom_sources].
|
43
43
|
module ContentSourceDocuments
|
44
|
-
REQUIRED_TOP_LEVEL_KEYS = [
|
45
|
-
'external_id',
|
46
|
-
'url',
|
47
|
-
'title',
|
48
|
-
'body'
|
49
|
-
].map!(&:freeze).to_set.freeze
|
50
|
-
OPTIONAL_TOP_LEVEL_KEYS = [
|
51
|
-
'created_at',
|
52
|
-
'updated_at',
|
53
|
-
'type',
|
54
|
-
].map!(&:freeze).to_set.freeze
|
55
|
-
CORE_TOP_LEVEL_KEYS = (REQUIRED_TOP_LEVEL_KEYS + OPTIONAL_TOP_LEVEL_KEYS).freeze
|
56
44
|
|
57
45
|
# Index a batch of documents using the {Content Source API}[https://app.swiftype.com/ent/docs/custom_sources].
|
58
46
|
#
|
@@ -64,7 +52,7 @@ module SwiftypeEnterprise
|
|
64
52
|
# @raise [SwiftypeEnterprise::InvalidDocument] when a single document is missing required fields or contains unsupported fields
|
65
53
|
# @raise [Timeout::Error] when timeout expires waiting for results
|
66
54
|
def index_documents(content_source_key, documents)
|
67
|
-
documents = Array(documents).map! { |document|
|
55
|
+
documents = Array(documents).map! { |document| normalize_document(document) }
|
68
56
|
|
69
57
|
async_create_or_update_documents(content_source_key, documents)
|
70
58
|
end
|
@@ -87,16 +75,8 @@ module SwiftypeEnterprise
|
|
87
75
|
post("ent/sources/#{content_source_key}/documents/bulk_create.json", documents)
|
88
76
|
end
|
89
77
|
|
90
|
-
def
|
91
|
-
|
92
|
-
document_keys = document.keys.to_set
|
93
|
-
missing_keys = REQUIRED_TOP_LEVEL_KEYS - document_keys
|
94
|
-
raise SwiftypeEnterprise::InvalidDocument.new("missing required fields (#{missing_keys.to_a.join(', ')})") if missing_keys.any?
|
95
|
-
|
96
|
-
surplus_keys = document_keys - CORE_TOP_LEVEL_KEYS
|
97
|
-
raise SwiftypeEnterprise::InvalidDocument.new("unsupported fields supplied (#{surplus_keys.to_a.join(', ')}), supported fields are (#{CORE_TOP_LEVEL_KEYS.to_a.join(', ')})") if surplus_keys.any?
|
98
|
-
|
99
|
-
document
|
78
|
+
def normalize_document(document)
|
79
|
+
Utils.stringify_keys(document)
|
100
80
|
end
|
101
81
|
end
|
102
82
|
|
@@ -3,7 +3,7 @@ require 'swiftype-enterprise/version'
|
|
3
3
|
|
4
4
|
module SwiftypeEnterprise
|
5
5
|
module Configuration
|
6
|
-
DEFAULT_ENDPOINT = "
|
6
|
+
DEFAULT_ENDPOINT = "http://localhost:3002/api/v1/"
|
7
7
|
DEFAULT_USER_AGENT = "swiftype-enterprise-ruby/#{SwiftypeEnterprise::VERSION}"
|
8
8
|
|
9
9
|
VALID_OPTIONS_KEYS = [
|
data/spec/client_spec.rb
CHANGED
@@ -12,19 +12,19 @@ describe SwiftypeEnterprise::Client do
|
|
12
12
|
def check_receipt_response_format(response, options = {})
|
13
13
|
expect(response.keys).to match_array(["document_receipts", "batch_link"])
|
14
14
|
expect(response["document_receipts"]).to be_a_kind_of(Array)
|
15
|
-
expect(response["document_receipts"].first.keys).to match_array(["id", "
|
16
|
-
expect(response["document_receipts"].first["
|
15
|
+
expect(response["document_receipts"].first.keys).to match_array(["id", "id", "links", "status", "errors"])
|
16
|
+
expect(response["document_receipts"].first["id"]).to eq(options[:id]) if options[:id]
|
17
17
|
expect(response["document_receipts"].first["status"]).to eq(options[:status]) if options[:status]
|
18
18
|
expect(response["document_receipts"].first["errors"]).to eq(options[:errors]) if options[:errors]
|
19
19
|
end
|
20
20
|
|
21
21
|
let(:content_source_key) { '59542d332139de0acacc7dd4' }
|
22
22
|
let(:documents) do
|
23
|
-
[{'
|
23
|
+
[{'id'=>'INscMGmhmX4',
|
24
24
|
'url' => 'http://www.youtube.com/watch?v=v1uyQZNg2vE',
|
25
25
|
'title' => 'The Original Grumpy Cat',
|
26
26
|
'body' => 'this is a test'},
|
27
|
-
{'
|
27
|
+
{'id'=>'JNDFojsd02',
|
28
28
|
'url' => 'http://www.youtube.com/watch?v=tsdfhk2j',
|
29
29
|
'title' => 'Another Grumpy Cat',
|
30
30
|
'body' => 'this is also a test'}]
|
@@ -45,7 +45,7 @@ describe SwiftypeEnterprise::Client do
|
|
45
45
|
VCR.use_cassette(:document_receipts_multiple_complete) do
|
46
46
|
client.index_documents(content_source_key, documents)
|
47
47
|
VCR.use_cassette(:destroy_documents_success) do
|
48
|
-
response = client.destroy_documents(content_source_key, [documents.first['
|
48
|
+
response = client.destroy_documents(content_source_key, [documents.first['id']])
|
49
49
|
expect(response.size).to eq(1)
|
50
50
|
expect(response.first['success']).to eq(true)
|
51
51
|
end
|
@@ -5,8 +5,8 @@ http_interactions:
|
|
5
5
|
uri: http://localhost:3002/api/v1/ent/sources/59542d332139de0acacc7dd4/documents/bulk_create.json
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '[{"
|
9
|
-
Original Grumpy Cat","body":"this is a test"},{"
|
8
|
+
string: '[{"id":"INscMGmhmX4","url":"http://www.youtube.com/watch?v=v1uyQZNg2vE","title":"The
|
9
|
+
Original Grumpy Cat","body":"this is a test"},{"id":"JNDFojsd02","url":"http://www.youtube.com/watch?v=tsdfhk2j","title":"Another
|
10
10
|
Grumpy Cat","body":"this is also a test"}]'
|
11
11
|
headers:
|
12
12
|
Accept-Encoding:
|
@@ -47,7 +47,7 @@ http_interactions:
|
|
47
47
|
- thin 1.5.0 codename Knife
|
48
48
|
body:
|
49
49
|
encoding: UTF-8
|
50
|
-
string: '[{"id":null,"
|
50
|
+
string: '[{"id":null,"id":"1234","errors":[]},{"id":null,"id":"1235","errors":[]}]'
|
51
51
|
http_version:
|
52
52
|
recorded_at: Wed, 05 Jul 2017 17:52:09 GMT
|
53
53
|
recorded_with: VCR 3.0.3
|
@@ -47,7 +47,7 @@ http_interactions:
|
|
47
47
|
- thin 1.5.0 codename Knife
|
48
48
|
body:
|
49
49
|
encoding: UTF-8
|
50
|
-
string: '[{"
|
51
|
-
http_version:
|
50
|
+
string: '[{"id":"INscMGmhmX4","success":true}]'
|
51
|
+
http_version:
|
52
52
|
recorded_at: Wed, 05 Jul 2017 17:52:12 GMT
|
53
53
|
recorded_with: VCR 3.0.3
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: swiftype-enterprise
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Quin Hoxie
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-07-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -114,7 +114,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
114
114
|
version: '0'
|
115
115
|
requirements: []
|
116
116
|
rubyforge_project:
|
117
|
-
rubygems_version: 2.
|
117
|
+
rubygems_version: 2.5.2.3
|
118
118
|
signing_key:
|
119
119
|
specification_version: 4
|
120
120
|
summary: Official gem for accessing the Swiftype Enterprise API
|