govuk-registers-api-client 1.2.2 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.version +1 -1
- data/govuk-registers-api-client.gemspec +2 -3
- data/lib/data_store.rb +0 -6
- data/lib/in_memory_data_store.rb +0 -8
- data/lib/register_client.rb +0 -33
- data/lib/register_client_manager.rb +1 -1
- metadata +3 -6
- data/lib/exceptions/invalid_hash_value_error.rb +0 -5
- data/lib/exceptions/invalid_register_error.rb +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3c79b43538961d0c037891bc4eaa67e0da7bf69050a2cd7c2a1336dff51b0c2a
|
4
|
+
data.tar.gz: 61e8dd48b0039c5c056a84a36d533c2b0a524f009123cbc350e48f8c92af10b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ac33158386fee446b0ff90467a32aea323966da03f04e03393b017b9f1eb7adeadb54316a493ccd240e74a0c7eb07c41d0e4c27912215d6045f7c1cfa09efc94
|
7
|
+
data.tar.gz: 3986be8a39634b281f86aa256d40dcc7917cbb30899fdd47e3c515983b62382429a8856fc71b84bef9cbda9c6e4a2d1324c121ed0d0d8137e16d75d962eab4eb
|
data/.version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
2.0.0
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: govuk-registers-api-client
|
2
|
+
# stub: govuk-registers-api-client 2.0.0 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "govuk-registers-api-client".freeze
|
@@ -8,7 +8,6 @@ Gem::Specification.new do |s|
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib".freeze]
|
10
10
|
s.authors = ["GOV.UK Registers Team (Government Digital Service)".freeze]
|
11
|
-
s.date = "2017-11-06"
|
12
11
|
s.email = "registers ~@nospam@~ digital.cabinet-office.gov.uk".freeze
|
13
12
|
s.extra_rdoc_files = ["README.md".freeze]
|
14
13
|
s.files = `git ls-files -z`.split("\x0").reject do |f|
|
@@ -22,7 +21,7 @@ Gem::Specification.new do |s|
|
|
22
21
|
|
23
22
|
if s.respond_to? :specification_version then
|
24
23
|
s.specification_version = 4
|
25
|
-
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('
|
24
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('2.0.0') then
|
26
25
|
s.add_runtime_dependency(%q<rest-client>.freeze, ["~> 2"])
|
27
26
|
else
|
28
27
|
s.add_dependency(%q<rest-client>.freeze, ["~> 2"])
|
data/lib/data_store.rb
CHANGED
data/lib/in_memory_data_store.rb
CHANGED
data/lib/register_client.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
require 'rest-client'
|
2
2
|
require 'json'
|
3
|
-
require 'exceptions/invalid_register_error'
|
4
|
-
require 'exceptions/invalid_hash_value_error'
|
5
3
|
|
6
4
|
module RegistersClient
|
7
5
|
class RegisterClient
|
@@ -77,19 +75,9 @@ module RegistersClient
|
|
77
75
|
RecordCollection.new(get_records.select { |record| record.item.has_end_date }, @page_size)
|
78
76
|
end
|
79
77
|
|
80
|
-
def get_root_hash
|
81
|
-
root_hash = @data_store.get_root_hash
|
82
|
-
if !is_valid_hash_value(root_hash)
|
83
|
-
raise InvalidHashValueError
|
84
|
-
end
|
85
|
-
return root_hash
|
86
|
-
end
|
87
|
-
|
88
78
|
def refresh_data
|
89
79
|
user_entry_number = @data_store.get_latest_entry_number(:user)
|
90
80
|
rsf = download_rsf(user_entry_number)
|
91
|
-
|
92
|
-
validate_register_integrity(rsf, user_entry_number)
|
93
81
|
update_data_from_rsf(rsf, user_entry_number, @data_store)
|
94
82
|
end
|
95
83
|
|
@@ -118,20 +106,6 @@ module RegistersClient
|
|
118
106
|
records_with_history
|
119
107
|
end
|
120
108
|
|
121
|
-
def get_register_proof
|
122
|
-
@register_proof = JSON.parse(register_http_request('proof/register/merkle:sha-256'))
|
123
|
-
end
|
124
|
-
|
125
|
-
def validate_register_integrity(rsf, current_entry_number)
|
126
|
-
rsf_lines = rsf.split("\n")
|
127
|
-
expected_root_hash = rsf_lines[0].split("\t")[1]
|
128
|
-
local_root_hash = @data_store.get_root_hash
|
129
|
-
|
130
|
-
if (local_root_hash != expected_root_hash)
|
131
|
-
raise InvalidRegisterError, 'Register has been reloaded with different data - root hashes do not match'
|
132
|
-
end
|
133
|
-
end
|
134
|
-
|
135
109
|
def download_rsf(start_entry_number)
|
136
110
|
register_http_request("download-rsf/#{start_entry_number}")
|
137
111
|
end
|
@@ -161,9 +135,6 @@ module RegistersClient
|
|
161
135
|
data_store.append_entry(entry)
|
162
136
|
end
|
163
137
|
end
|
164
|
-
elsif command == 'assert-root-hash'
|
165
|
-
root_hash = line.split("\t")[1]
|
166
|
-
data_store.set_root_hash(root_hash)
|
167
138
|
end
|
168
139
|
end
|
169
140
|
|
@@ -182,9 +153,5 @@ module RegistersClient
|
|
182
153
|
|
183
154
|
RestClient.get(@register_url.merge(path).to_s, headers)
|
184
155
|
end
|
185
|
-
|
186
|
-
def is_valid_hash_value(hash_value)
|
187
|
-
(/sha-256:+\h{64}/) === hash_value
|
188
|
-
end
|
189
156
|
end
|
190
157
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: govuk-registers-api-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Registers Team (Government Digital Service)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-03-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rest-client
|
@@ -46,8 +46,6 @@ files:
|
|
46
46
|
- lib/data_store.rb
|
47
47
|
- lib/entry.rb
|
48
48
|
- lib/entry_collection.rb
|
49
|
-
- lib/exceptions/invalid_hash_value_error.rb
|
50
|
-
- lib/exceptions/invalid_register_error.rb
|
51
49
|
- lib/in_memory_data_store.rb
|
52
50
|
- lib/item.rb
|
53
51
|
- lib/item_collection.rb
|
@@ -77,8 +75,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
77
75
|
- !ruby/object:Gem::Version
|
78
76
|
version: '0'
|
79
77
|
requirements: []
|
80
|
-
|
81
|
-
rubygems_version: 2.7.7
|
78
|
+
rubygems_version: 3.0.3
|
82
79
|
signing_key:
|
83
80
|
specification_version: 4
|
84
81
|
summary: Client library for GOV.UK Registers
|