Skip to content

Commit e290cfb

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

File tree

6 files changed

+72
-1
lines changed

6 files changed

+72
-1
lines changed

.code-samples.meilisearch.yaml

Lines changed: 15 additions & 0 deletions
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
)

lib/meilisearch.rb

Lines changed: 1 addition & 0 deletions
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'

lib/meilisearch/client.rb

Lines changed: 1 addition & 0 deletions
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

lib/meilisearch/network.rb

Lines changed: 14 additions & 0 deletions
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

lib/meilisearch/utils.rb

Lines changed: 1 addition & 1 deletion
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)
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
# frozen_string_literal: true
2+
3+
describe 'Meilisearch::Client - Network' do
4+
let(:default_network) do
5+
{
6+
'self' => nil,
7+
'remotes' => {}
8+
}
9+
end
10+
11+
let(:sample_remote) do
12+
{
13+
ms1: {
14+
url: PROXY_URL,
15+
search_api_key: MASTER_KEY
16+
}
17+
}
18+
end
19+
20+
describe '#network' do
21+
it 'returns the sharding configuration' do
22+
expect(client.network).to eq default_network
23+
end
24+
end
25+
26+
describe '#update_network' do
27+
it 'updates the sharding configuration' do
28+
new_network = {
29+
self: 'ms0',
30+
remotes: sample_remote
31+
}
32+
33+
client.update_network(new_network)
34+
expect(client.network).to eq(Meilisearch::Utils.transform_attributes(new_network))
35+
36+
client.update_network({ remotes: nil, self: nil })
37+
expect(client.network).to eq default_network
38+
end
39+
end
40+
end

0 commit comments

Comments
 (0)