Skip to content

Commit f3be092

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

File tree

5 files changed

+69
-0
lines changed

5 files changed

+69
-0
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: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
module Meilisearch
2+
module Network
3+
def network
4+
http_get '/network'
5+
end
6+
7+
def update_network(new_network)
8+
new_network = Utils.transform_attributes(new_network)
9+
http_patch '/network', new_network
10+
end
11+
end
12+
end
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 - proxy search' 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)