Skip to content

Commit 24efc88

Browse files
bors[bot]nagaronicurquiza
authored
Merge #234
234: Change client#indexes method to retrieve a list of `Index` instance r=curquiza a=nagaroni # WHY It would be better to work with a Index instances when listing all indexes rather than the raw response. # HOW * Change MeiliSearch::Client#indexes to return a list of MeiliSearch::Index object * Add raw_indexes to return the raw response from meilisearch server closes #227 Co-authored-by: Gabriel Lima <[email protected]> Co-authored-by: nagaroni <[email protected]> Co-authored-by: Clémentine Urquizar <[email protected]>
2 parents 836d83b + 691f940 commit 24efc88

File tree

3 files changed

+18
-4
lines changed

3 files changed

+18
-4
lines changed

lib/meilisearch/client.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,14 @@ module MeiliSearch
66
class Client < HTTPRequest
77
### INDEXES
88

9+
def raw_indexes
10+
http_get('/indexes')
11+
end
12+
913
def indexes
10-
http_get '/indexes'
14+
raw_indexes.map do |index_hash|
15+
index_object(index_hash['uid'], index_hash['primaryKey'])
16+
end
1117
end
1218

1319
# Usage:

spec/meilisearch/client/indexes_spec.rb

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,10 +79,18 @@
7979
end.to raise_meilisearch_api_error_with(400, 'invalid_index_uid', 'invalid_request_error')
8080
end
8181

82-
it 'gets list of indexes' do
82+
it 'gets list of indexes as MeiliSearch::Index' do
83+
client.create_index('index')
84+
85+
response = client.indexes.first
86+
87+
expect(response).to be_a(MeiliSearch::Index)
88+
end
89+
90+
it 'gets list of raw indexes' do
8391
['first_index', 'second_index', 'third_index'].each { |name| client.create_index(name) }
8492

85-
indexes = client.indexes
93+
indexes = client.raw_indexes
8694

8795
expect(indexes).to be_a(Array)
8896
expect(indexes.length).to eq(3)

spec/support/indexes_helpers.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
module IndexesHelpers
44
def clear_all_indexes(client)
55
indexes = client.indexes
6-
uids = indexes.map { |index| index['uid'] }
6+
uids = indexes.map(&:uid)
77
uids.each do |uid|
88
client.delete_index(uid)
99
end

0 commit comments

Comments
 (0)