Skip to content

Commit faa4742

Browse files
committed
Support network endpoints
1 parent 8f5f97c commit faa4742

File tree

6 files changed

+76
-1
lines changed

6 files changed

+76
-1
lines changed

Diff for: .code-samples.meilisearch.yaml

+15
Original file line numberDiff line numberDiff line change
@@ -720,4 +720,19 @@ multi_search_federated_1: |-
720720
client.multi_search(
721721
queries: [{ index_uid: 'movies', q: 'batman' }, { index_uid: 'comics', q: 'batman' }],
722722
federation: {}
723+
get_network_1: |-
724+
client.network
725+
update_network_1: |-
726+
client.update_network(
727+
self: 'ms-00',
728+
remotes: {
729+
'ms-00': {
730+
'url': 'http://INSTANCE_URL',
731+
'searchApiKey': 'INSTANCE_API_KEY'
732+
},
733+
'ms-01': {
734+
'url': 'http://ANOTHER_INSTANCE_URL',
735+
'searchApiKey': 'ANOTHER_INSTANCE_API_KEY'
736+
}
737+
}
723738
)

Diff for: lib/meilisearch.rb

+1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
require 'meilisearch/models/task'
88
require 'meilisearch/http_request'
99
require 'meilisearch/multi_search'
10+
require 'meilisearch/network'
1011
require 'meilisearch/tenant_token'
1112
require 'meilisearch/task'
1213
require 'meilisearch/client'

Diff for: lib/meilisearch/client.rb

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ module Meilisearch
44
class Client < HTTPRequest
55
include Meilisearch::TenantToken
66
include Meilisearch::MultiSearch
7+
include Meilisearch::Network
78

89
### INDEXES
910

Diff for: lib/meilisearch/network.rb

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# frozen_string_literal: true
2+
3+
module Meilisearch
4+
module Network
5+
def network
6+
http_get '/network'
7+
end
8+
9+
def update_network(new_network)
10+
new_network = Utils.transform_attributes(new_network)
11+
http_patch '/network', new_network
12+
end
13+
end
14+
end

Diff for: lib/meilisearch/utils.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -83,11 +83,11 @@ def warn_on_non_conforming_attribute_names(body)
8383

8484
def parse(body)
8585
body
86+
.transform_values { |val| transform_attributes(val) }
8687
.transform_keys(&:to_s)
8788
.transform_keys do |key|
8889
key.include?('_') ? key.downcase.gsub(SNAKE_CASE, &:upcase).gsub('_', '') : key
8990
end
90-
.transform_values { |val| transform_attributes(val) }
9191
end
9292

9393
def message_builder(current_message, method_name)

Diff for: spec/meilisearch/client/network_spec.rb

+44
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
# frozen_string_literal: true
2+
3+
describe 'Meilisearch::Client - Network' do
4+
before do
5+
client.update_experimental_features(network: true)
6+
end
7+
8+
let(:default_network) do
9+
{
10+
'self' => nil,
11+
'remotes' => {}
12+
}
13+
end
14+
15+
let(:sample_remote) do
16+
{
17+
ms1: {
18+
url: 'http://localhost',
19+
search_api_key: 'masterKey'
20+
}
21+
}
22+
end
23+
24+
describe '#network' do
25+
it 'returns the sharding configuration' do
26+
expect(client.network).to eq default_network
27+
end
28+
end
29+
30+
describe '#update_network' do
31+
it 'updates the sharding configuration' do
32+
new_network = {
33+
self: 'ms0',
34+
remotes: sample_remote
35+
}
36+
37+
client.update_network(new_network)
38+
expect(client.network).to eq(Meilisearch::Utils.transform_attributes(new_network))
39+
40+
client.update_network({ remotes: nil, self: nil })
41+
expect(client.network).to eq default_network
42+
end
43+
end
44+
end

0 commit comments

Comments
 (0)