swiftype-app-search 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e6a0446be835e0a75f4178bfe80b2a07d753830c
4
- data.tar.gz: bece76cd41d93a13e7d4cbdcebc94eda1bc92959
3
+ metadata.gz: fd624bd0145b983734fdd65725ad222fb07752b5
4
+ data.tar.gz: d02e4f1e25f9e6a8d06eb83f33bc38b5aa132ec5
5
5
  SHA512:
6
- metadata.gz: e5372a736a13b54af0924182d6a5a4f3c18fb7b044f1019ed440397a7a664466e89eb0e0dc4de81e8583f969cc9fad5e3e5fae504a01c79ac51cdbccbdb27d4f
7
- data.tar.gz: 894f9db75969cdf67dd27d3c25b474e74bc76f19280b269521f0e254808271a1a5a50cdba5ce3f34d73a0f39186f0ac8fe386ce42cfbcfe696f6ba1d4c3552c3
6
+ metadata.gz: 5afb7ec9fc723e2fceaaa629d3dc948857ad3f4546db3ea67b659870f4aac7115d1185a7927194d2e18d4697e2026f026697b061c8c5a13f7bd94ca4a49577ea
7
+ data.tar.gz: 7d88608afa49080ad259930b299d2d78774a3188a26aadeb6ea9db58af94d45c8581df8329e9d54314918107578247554ed6dbd1f6f88f863b376f8f1ed5b2d8
data/README.md CHANGED
@@ -1,7 +1,5 @@
1
1
  # Ruby client for the Swiftype App Search API
2
2
 
3
- **Note: Swiftype App Search is currently in beta**
4
-
5
3
  ## Installation
6
4
 
7
5
  To install the gem, execute:
@@ -10,7 +8,7 @@ To install the gem, execute:
10
8
  gem install swiftype-app-search
11
9
  ```
12
10
 
13
- Or place `gem 'swiftype-app-search', '~> 0.1.0` in your `Gemfile` and run `bundle install`.
11
+ Or place `gem 'swiftype-app-search', '~> 0.1.3` in your `Gemfile` and run `bundle install`.
14
12
 
15
13
  ## Usage
16
14
 
@@ -3,8 +3,8 @@
3
3
  module SwiftypeAppSearch
4
4
  class Client
5
5
  module Engines
6
- def list_engines
7
- get("engines")
6
+ def list_engines(current: 1, size: 20)
7
+ get("engines", :page => { :current => current, :size => size })
8
8
  end
9
9
 
10
10
  def get_engine(engine_name)
@@ -17,9 +17,9 @@ module SwiftypeAppSearch
17
17
  class RequestEntityTooLarge < ClientException; end
18
18
 
19
19
  class UnexpectedHTTPException < ClientException
20
- def initialize(http_response)
21
- @errors = []
22
- super("HTTP #{http_response.code}: #{http_response.body}")
20
+ def initialize(response, response_json)
21
+ errors = (response_json['errors'] || [response.message]).map { |e| "(#{response.code}) #{e}" }
22
+ super({ 'errors' => errors })
23
23
  end
24
24
  end
25
25
  end
@@ -70,7 +70,7 @@ module SwiftypeAppSearch
70
70
  when Net::HTTPRequestEntityTooLarge
71
71
  raise SwiftypeAppSearch::RequestEntityTooLarge, response_json
72
72
  else
73
- raise SwiftypeAppSearch::UnexpectedHTTPException, response
73
+ raise SwiftypeAppSearch::UnexpectedHTTPException.new(response, response_json)
74
74
  end
75
75
  end
76
76
  end
@@ -1,3 +1,3 @@
1
1
  module SwiftypeAppSearch
2
- VERSION = '0.1.2'
2
+ VERSION = '0.1.3'
3
3
  end
@@ -32,12 +32,12 @@ describe SwiftypeAppSearch::Client do
32
32
  end
33
33
 
34
34
  context 'when a document has processing errors' do
35
- let(:document) { { 'bad' => { 'no' => 'nested hashes' } } }
35
+ let(:document) { { 'id' => 'too long' * 100 } }
36
36
 
37
37
  it 'should raise an error when the API returns errors in the response' do
38
38
  expect do
39
39
  subject
40
- end.to raise_error(SwiftypeAppSearch::InvalidDocument, /Invalid field value/)
40
+ end.to raise_error(SwiftypeAppSearch::InvalidDocument, /Invalid field/)
41
41
  end
42
42
  end
43
43
  end
@@ -56,12 +56,12 @@ describe SwiftypeAppSearch::Client do
56
56
  end
57
57
 
58
58
  context 'when one of the documents has processing errors' do
59
- let(:second_document) { { 'bad' => { 'no' => 'nested hashes' } } }
59
+ let(:second_document) { { 'id' => 'too long' * 100 } }
60
60
 
61
61
  it 'should return respective errors in an array of document processing hashes' do
62
62
  expect(subject).to match([
63
63
  { 'id' => anything, 'errors' => [] },
64
- { 'id' => anything, 'errors' => ['Invalid field value: Value \'{"no"=>"nested hashes"}\' cannot be an object'] },
64
+ { 'id' => anything, 'errors' => ['Invalid field type: id must be less than 800 characters'] },
65
65
  ])
66
66
  end
67
67
  end
@@ -97,15 +97,20 @@ describe SwiftypeAppSearch::Client do
97
97
 
98
98
  context '#list_engines' do
99
99
  it 'should return an array with a list of engines' do
100
- expect(client.list_engines).to be_an(Array)
100
+ expect(client.list_engines['results']).to be_an(Array)
101
101
  end
102
102
 
103
103
  it 'should include the engine name in listed objects' do
104
- # Create an engine
105
104
  client.create_engine(engine_name)
106
105
 
107
- # Get the list
108
- engines = client.list_engines
106
+ engines = client.list_engines['results']
107
+ expect(engines.find { |e| e['name'] == engine_name }).to_not be_nil
108
+ end
109
+
110
+ it 'should include the engine name in listed objects with pagination' do
111
+ client.create_engine(engine_name)
112
+
113
+ engines = client.list_engines(:current => 1, :size => 20)['results']
109
114
  expect(engines.find { |e| e['name'] == engine_name }).to_not be_nil
110
115
  end
111
116
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: swiftype-app-search
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Quin Hoxie
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-05-15 00:00:00.000000000 Z
11
+ date: 2018-05-16 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.5.2
117
+ rubygems_version: 2.4.5
118
118
  signing_key:
119
119
  specification_version: 4
120
120
  summary: Official gem for accessing the Swiftype App Search API