govuk-registers-api-client 1.0.1 → 1.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.version +1 -1
- data/README.md +12 -4
- data/govuk-registers-api-client.gemspec +1 -1
- data/lib/register_client.rb +11 -4
- data/lib/register_client_manager.rb +12 -9
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ad44826f15da4eff3286aac98593630b0b34972a28701b6e72c6dffc8a79e1d3
|
4
|
+
data.tar.gz: a035133485d3f7f842dd44a542eb1c7253bb26579576fc0848ce20e61e5ef2bd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe46727474d9b7c8342b3cb909b2abb3423fb2b2d760cb8e957a75662fb1011492356a2e1a42d272141e4549114bcb061f79fa4fcd1351cc5b7ed53a5dc15d9e
|
7
|
+
data.tar.gz: bbbea01d73e999aebe657a75ccb8f1304e0913cc8fc7b12b923255f64e3b1ee798d85883843a54d1caff6b5ed49e8a36a494a9cf3e1fa56c49509bc7b5d37713
|
data/.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.
|
1
|
+
1.1.1
|
data/README.md
CHANGED
@@ -35,6 +35,7 @@ The `RegisterClientManager` is the entry point of the Registers Ruby client:
|
|
35
35
|
require 'register_client_manager'
|
36
36
|
|
37
37
|
registers_client = RegistersClient::RegisterClientManager.new({
|
38
|
+
api_key: "YOUR API KEY HERE",
|
38
39
|
page_size: 10
|
39
40
|
})
|
40
41
|
```
|
@@ -42,17 +43,22 @@ registers_client = RegistersClient::RegisterClientManager.new({
|
|
42
43
|
The `RegisterClientManager` maintains individual instances of [`RegisterClient`](#registerclient) for each register you access via the [`get_register`](#getregister) method.
|
43
44
|
|
44
45
|
When creating a new `RegisterClientManager`, you can pass a configuration object to specify the following:
|
46
|
+
- The `api_key` is the API key you received after signing-up your service on our product page.
|
45
47
|
- `page_size`: number of results returned per page when using the `page` method of any of the collection classes (see below for more information) - default is `100`
|
46
48
|
|
47
49
|
## Reference
|
48
50
|
|
49
51
|
### <a id="registerclientmanager"></a>`RegisterClientManager`
|
50
52
|
|
51
|
-
##### <a id="getregister"></a>`get_register(register, phase,
|
53
|
+
##### <a id="getregister"></a>`get_register(register, phase, options = {})`
|
52
54
|
|
53
55
|
Gets the `RegisterClient` instance for the given `register` name and `phase`.
|
54
56
|
|
55
|
-
|
57
|
+
You can pass an optional `options` object, which can include the following properties:
|
58
|
+
|
59
|
+
- data_store
|
60
|
+
|
61
|
+
The `data_store` specifies the data store to use accessing a particular register. You can omit this parameter, which will make it default to the `InMemoryDataStore` value. You can also create a custom data store to include the `DataStore` module and to implement the methods it defines. For example, to insert register data directly into your Postgres database.
|
56
62
|
|
57
63
|
<details>
|
58
64
|
<summary>
|
@@ -61,7 +67,10 @@ Example use (click here to expand):
|
|
61
67
|
|
62
68
|
```
|
63
69
|
|
64
|
-
|
70
|
+
options = {
|
71
|
+
data_store: nil
|
72
|
+
}
|
73
|
+
registers_client.get_register('country', 'beta', options)
|
65
74
|
|
66
75
|
```
|
67
76
|
</details>
|
@@ -802,4 +811,3 @@ ull}}]],
|
|
802
811
|
|
803
812
|
```
|
804
813
|
</details>
|
805
|
-
|
data/lib/register_client.rb
CHANGED
@@ -5,10 +5,11 @@ require 'exceptions/invalid_hash_value_error'
|
|
5
5
|
|
6
6
|
module RegistersClient
|
7
7
|
class RegisterClient
|
8
|
-
def initialize(register_url, data_store, page_size)
|
8
|
+
def initialize(register_url, data_store, page_size, options = {})
|
9
9
|
@register_url = register_url
|
10
10
|
@data_store = data_store
|
11
11
|
@page_size = page_size
|
12
|
+
@options = options
|
12
13
|
|
13
14
|
refresh_data
|
14
15
|
end
|
@@ -149,11 +150,11 @@ module RegistersClient
|
|
149
150
|
if params[1] == 'user'
|
150
151
|
user_entry_number += 1
|
151
152
|
|
152
|
-
entry = Entry.new(line, user_entry_number, params[1])
|
153
|
+
entry = RegistersClient::Entry.new(line, user_entry_number, params[1])
|
153
154
|
else
|
154
155
|
system_entry_number += 1
|
155
156
|
|
156
|
-
entry = Entry.new(line, system_entry_number, params[1])
|
157
|
+
entry = RegistersClient::Entry.new(line, system_entry_number, params[1])
|
157
158
|
end
|
158
159
|
|
159
160
|
data_store.append_entry(entry)
|
@@ -167,7 +168,13 @@ module RegistersClient
|
|
167
168
|
end
|
168
169
|
|
169
170
|
def register_http_request(path)
|
170
|
-
|
171
|
+
headers = {}
|
172
|
+
|
173
|
+
unless @options[:api_key] == nil
|
174
|
+
headers[:Authorization] = @options[:api_key]
|
175
|
+
end
|
176
|
+
|
177
|
+
RestClient.get(@register_url.merge(path).to_s, headers)
|
171
178
|
end
|
172
179
|
|
173
180
|
def is_valid_hash_value(hash_value)
|
@@ -2,27 +2,25 @@ require 'register_client'
|
|
2
2
|
require 'in_memory_data_store'
|
3
3
|
|
4
4
|
module RegistersClient
|
5
|
-
VERSION = '1.
|
5
|
+
VERSION = '1.1.1'
|
6
6
|
class RegisterClientManager
|
7
7
|
def initialize(config_options = {})
|
8
8
|
@config_options = defaults.merge(config_options)
|
9
9
|
@register_clients = {}
|
10
10
|
end
|
11
11
|
|
12
|
-
def get_register(register, phase,
|
12
|
+
def get_register(register, phase, options = {})
|
13
13
|
environment_url = get_environment_url_from_phase(phase)
|
14
|
-
get_register_from_environment(register, environment_url,
|
14
|
+
get_register_from_environment(register, environment_url, options)
|
15
15
|
end
|
16
16
|
|
17
|
-
def get_register_from_environment(register, environment_url,
|
17
|
+
def get_register_from_environment(register, environment_url, options = {})
|
18
18
|
key = register + ':' + environment_url.to_s
|
19
19
|
|
20
20
|
if !@register_clients.key?(key)
|
21
|
-
|
22
|
-
data_store = RegistersClient::InMemoryDataStore.new(@config_options)
|
23
|
-
end
|
24
|
-
|
21
|
+
data_store = options.has_key?(:data_store) ? options[:data_store] : RegistersClient::InMemoryDataStore.new(@config_options)
|
25
22
|
register_url = get_register_url(register, environment_url)
|
23
|
+
|
26
24
|
@register_clients[key] = create_register_client(register_url, data_store, @config_options.fetch(:page_size))
|
27
25
|
end
|
28
26
|
|
@@ -33,12 +31,17 @@ module RegistersClient
|
|
33
31
|
|
34
32
|
def defaults
|
35
33
|
{
|
34
|
+
api_key: nil,
|
36
35
|
page_size: 100
|
37
36
|
}
|
38
37
|
end
|
39
38
|
|
40
39
|
def create_register_client(register_url, data_store, page_size)
|
41
|
-
|
40
|
+
register_options = {
|
41
|
+
api_key: @config_options[:api_key]
|
42
|
+
}
|
43
|
+
|
44
|
+
RegistersClient::RegisterClient.new(register_url, data_store, page_size, register_options)
|
42
45
|
end
|
43
46
|
|
44
47
|
def get_register_url(register, environment_url)
|