gds-api-adapters 79.0.0 → 79.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/gds_api/email_alert_api.rb +1 -0
- data/lib/gds_api/locations_api.rb +28 -0
- data/lib/gds_api/test_helpers/locations_api.rb +38 -0
- data/lib/gds_api/version.rb +1 -1
- data/lib/gds_api.rb +8 -0
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 659e2cb6bd909708fb12456695cc971240b79685ad35181bec90a365354c8dd9
|
4
|
+
data.tar.gz: 6e995ea0a6b68dc218a2eb05f0eabb9a413a4dbfffcc34745795cd20fdc6802b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dde1459c2c812098ea2d830088970369ba1b9e87347b590d45a2e3be85551f8a833fb851e55c9f82079ebd749c1eda001d364ca07822005046f437b3101f61a6
|
7
|
+
data.tar.gz: d1a063b5239d0b4cf0e15c1fe90c1034358c5bd326942b2b778ea4b89923621f510816700af21eee0b71115f31e5dfa8997a982b29fbaeeefdb19a35b37a5f83
|
@@ -38,6 +38,7 @@ class GdsApi::EmailAlertApi < GdsApi::Base
|
|
38
38
|
#
|
39
39
|
# @param message [Hash] Valid message attributes
|
40
40
|
def create_message(message, headers = {})
|
41
|
+
warn "#create_message is deprecated and will be removed in a future version."
|
41
42
|
post_json("#{endpoint}/messages", message, headers)
|
42
43
|
end
|
43
44
|
|
@@ -0,0 +1,28 @@
|
|
1
|
+
require_relative "base"
|
2
|
+
require_relative "exceptions"
|
3
|
+
|
4
|
+
class GdsApi::LocationsApi < GdsApi::Base
|
5
|
+
# Get a list of local custodian codes for a postcode
|
6
|
+
#
|
7
|
+
# @param [String, nil] postcode The postcode for which the custodian codes are requested
|
8
|
+
#
|
9
|
+
# @return [Array] All local custodian codes for a specific postcode
|
10
|
+
def local_custodian_code_for_postcode(postcode)
|
11
|
+
response = get_json("#{endpoint}/v1/locations?postcode=#{postcode}")
|
12
|
+
|
13
|
+
return [] if response["results"].nil?
|
14
|
+
|
15
|
+
response["results"].map { |r| r["local_custodian_code"] }.uniq
|
16
|
+
end
|
17
|
+
|
18
|
+
# Get the average coordinates for a postcode
|
19
|
+
#
|
20
|
+
# @param [String, nil] postcode The postcode for which the coordinates are requested
|
21
|
+
#
|
22
|
+
# @return [Hash] The average coordinates (two fields, "latitude" and "longitude") for a specific postcode
|
23
|
+
def coordinates_for_postcode(postcode)
|
24
|
+
response = get_json("#{endpoint}/v1/locations?postcode=#{postcode}")
|
25
|
+
|
26
|
+
{ "latitude" => response["average_latitude"], "longitude" => response["average_longitude"] } unless response["results"].nil?
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
module GdsApi
|
2
|
+
module TestHelpers
|
3
|
+
module LocationsApi
|
4
|
+
LOCATIONS_API_ENDPOINT = Plek.current.find("locations-api")
|
5
|
+
|
6
|
+
def stub_locations_api_has_location(postcode, locations)
|
7
|
+
results = []
|
8
|
+
locations.each do |l|
|
9
|
+
results << {
|
10
|
+
"latitude" => l["latitude"],
|
11
|
+
"longitude" => l["longitude"],
|
12
|
+
"postcode" => postcode,
|
13
|
+
"local_custodian_code" => l["local_custodian_code"],
|
14
|
+
}
|
15
|
+
end
|
16
|
+
|
17
|
+
response = {
|
18
|
+
"average_latitude" => results.sum { |r| r["latitude"] } / results.size.to_f,
|
19
|
+
"average_longitude" => results.sum { |r| r["longitude"] } / results.size.to_f,
|
20
|
+
"results" => results,
|
21
|
+
}
|
22
|
+
|
23
|
+
stub_request(:get, "#{LOCATIONS_API_ENDPOINT}/v1/locations?postcode=#{postcode}")
|
24
|
+
.to_return(body: response.to_json, status: 200)
|
25
|
+
end
|
26
|
+
|
27
|
+
def stub_locations_api_has_no_location(postcode)
|
28
|
+
stub_request(:get, "#{LOCATIONS_API_ENDPOINT}/v1/locations?postcode=#{postcode}")
|
29
|
+
.to_return(body: { "results" => nil }.to_json, status: 200)
|
30
|
+
end
|
31
|
+
|
32
|
+
def stub_locations_api_does_not_have_a_bad_postcode(postcode)
|
33
|
+
stub_request(:get, "#{LOCATIONS_API_ENDPOINT}/v1/locations?postcode=#{postcode}")
|
34
|
+
.to_return(body: { "code" => 400, "error" => "Postcode '#{postcode}' is not valid." }.to_json, status: 400)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
data/lib/gds_api/version.rb
CHANGED
data/lib/gds_api.rb
CHANGED
@@ -10,6 +10,7 @@ require "gds_api/imminence"
|
|
10
10
|
require "gds_api/licence_application"
|
11
11
|
require "gds_api/link_checker_api"
|
12
12
|
require "gds_api/local_links_manager"
|
13
|
+
require "gds_api/locations_api"
|
13
14
|
require "gds_api/mapit"
|
14
15
|
require "gds_api/maslow"
|
15
16
|
require "gds_api/organisations"
|
@@ -115,6 +116,13 @@ module GdsApi
|
|
115
116
|
GdsApi::LocalLinksManager.new(Plek.find("local-links-manager"), options)
|
116
117
|
end
|
117
118
|
|
119
|
+
# Creates a GdsApi::LocationsApi adapter
|
120
|
+
#
|
121
|
+
# @return [GdsApi::LocationsApi]
|
122
|
+
def self.locations_api(options = {})
|
123
|
+
GdsApi::LocationsApi.new(Plek.find("locations-api"), options)
|
124
|
+
end
|
125
|
+
|
118
126
|
# Creates a GdsApi::Mapit adapter
|
119
127
|
#
|
120
128
|
# @return [GdsApi::Mapit]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gds-api-adapters
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 79.
|
4
|
+
version: 79.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-
|
11
|
+
date: 2022-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -385,6 +385,7 @@ files:
|
|
385
385
|
- lib/gds_api/link_checker_api.rb
|
386
386
|
- lib/gds_api/list_response.rb
|
387
387
|
- lib/gds_api/local_links_manager.rb
|
388
|
+
- lib/gds_api/locations_api.rb
|
388
389
|
- lib/gds_api/mapit.rb
|
389
390
|
- lib/gds_api/maslow.rb
|
390
391
|
- lib/gds_api/middleware/govuk_header_sniffer.rb
|
@@ -409,6 +410,7 @@ files:
|
|
409
410
|
- lib/gds_api/test_helpers/licence_application.rb
|
410
411
|
- lib/gds_api/test_helpers/link_checker_api.rb
|
411
412
|
- lib/gds_api/test_helpers/local_links_manager.rb
|
413
|
+
- lib/gds_api/test_helpers/locations_api.rb
|
412
414
|
- lib/gds_api/test_helpers/mapit.rb
|
413
415
|
- lib/gds_api/test_helpers/organisations.rb
|
414
416
|
- lib/gds_api/test_helpers/publishing_api.rb
|