gds-api-adapters 68.1.0 → 69.3.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ef6c438b86f67140c5ae9eac92199cdc2b27075f1254a5d79e9a5194b5e9635b
4
- data.tar.gz: fe7ce293b7cb055a2e8fcd4c3329b8ebad0603c8abf6e2a069360e135472fdcf
3
+ metadata.gz: 36d53c764d0ec5abb1685e55ff91057da30c9ce250dd46c4d5ae350b7684f66c
4
+ data.tar.gz: 50687996dcb29b5ca7d8e0ec5cc3fca4ef40228ea2700d901528b9b2f98b30c4
5
5
  SHA512:
6
- metadata.gz: 771aed019f50cfbc823162f4bb1e01ff1e4467e5e4e82ee83279d786b38abb08609f398043a7c256ce99f733eda0f9ee5dbbeefbc9f2ef1049940ff947edc61b
7
- data.tar.gz: '08196c965b433108c59b16cb462e75ab9f4f94911eb4f618dff94354c8fab5ac095c64e7a5d3fba50f9383fe5a02494b180446356e5d6f59afe7ddfba54c5d54'
6
+ metadata.gz: 1c5cb0ce0c5bd0147374a6abff9a1e121ce811775b5120c73fc319df47aebd8c4acdbe264f3507be9e91b19e0a01e55e0711e9538237c940ad96f9de9ce9b08e
7
+ data.tar.gz: 6584391dac6990ab4adeedc04491a1a9dec7f7ced21e8adc0da65e7c7fcea2bb242ac56e194e8b6572039a9917b9c7b78601899e822b101ba89f294fbb3a7d34
@@ -7,12 +7,13 @@ class GdsApi::AssetManager < GdsApi::Base
7
7
  #
8
8
  # Makes a +POST+ request to the asset manager api to create an asset.
9
9
  #
10
- # The asset must be provided as a +Hash+ with a single +file+ attribute that
10
+ # The asset must be provided as a +Hash+ with a +file+ attribute that
11
11
  # behaves like a +File+ object. The +content-type+ that the asset manager will
12
- # subsequently serve will be based *only* on the file's extension (derived
13
- # from +#path+). If you supply a +content-type+ via, for example
12
+ # subsequently serve will be based on the file's extension (derived from
13
+ # +#path+). If you supply a +content-type+ via, for example
14
14
  # +ActionDispatch::Http::UploadedFile+ or another multipart wrapper, it will
15
- # be ignored.
15
+ # be ignored. To provide a +content-type+ directly you must be specify it
16
+ # as a +content_type+ attribute of the hash.
16
17
  #
17
18
  # @param asset [Hash] The attributes for the asset to send to the api. Must
18
19
  # contain +file+, which behaves like a +File+. All other attributes will be
@@ -143,12 +144,10 @@ class GdsApi::AssetManager < GdsApi::Base
143
144
  #
144
145
  # Makes a +PUT+ request to the asset manager api to update an asset.
145
146
  #
146
- # The asset must be provided as a +Hash+ with a single +file+ attribute that
147
- # behaves like a +File+ object. The +content-type+ that the asset manager will
148
- # subsequently serve will be based *only* on the file's extension (derived
149
- # from +#path+). If you supply a +content-type+ via, for example
150
- # +ActionDispatch::Http::UploadedFile+ or another multipart wrapper, it will
151
- # be ignored.
147
+ # The asset must be provided as a +Hash+ with a +file+ attribute that
148
+ # behaves like a +File+ object. The +content-type+ of the file will be based
149
+ # on the files extension unless you specify a +content_type+ attribute of
150
+ # the hash to set it.
152
151
  #
153
152
  # @param id [String] The asset identifier (a UUID).
154
153
  # @param asset [Hash] The attributes for the asset to send to the api. Must
@@ -10,44 +10,20 @@ class GdsApi::EmailAlertApi < GdsApi::Base
10
10
  #
11
11
  # @param attributes [Hash] document_type, links, tags used to search existing subscriber lists
12
12
  def find_or_create_subscriber_list(attributes)
13
- find_subscriber_list(attributes)
14
- rescue GdsApi::HTTPNotFound
15
- create_subscriber_list(attributes)
16
- end
17
-
18
- # Get a subscriber list
19
- #
20
- # @param attributes [Hash] document_type, links, tags used to search existing subscriber lists
21
- def find_subscriber_list(attributes)
22
- tags = attributes["tags"]
23
- links = attributes["links"]
24
- document_type = attributes["document_type"]
25
- email_document_supertype = attributes["email_document_supertype"]
26
- government_document_supertype = attributes["government_document_supertype"]
27
- combine_mode = attributes["combine_mode"]
28
-
29
- if tags && links
13
+ if attributes["tags"] && attributes["links"]
30
14
  message = "please provide either tags or links (or neither), but not both"
31
15
  raise ArgumentError, message
32
16
  end
33
17
 
34
- params = {}
35
- params[:tags] = tags if tags
36
- params[:links] = links if links
37
- params[:document_type] = document_type if document_type
38
- params[:email_document_supertype] = email_document_supertype if email_document_supertype
39
- params[:government_document_supertype] = government_document_supertype if government_document_supertype
40
- params[:combine_mode] = combine_mode if combine_mode
41
-
42
- query_string = nested_query_string(params)
43
- get_json("#{endpoint}/subscriber-lists?" + query_string)
18
+ post_json("#{endpoint}/subscriber-lists", attributes)
44
19
  end
45
20
 
46
- # Post a subscriber list
21
+ # Get a subscriber list
47
22
  #
48
23
  # @param attributes [Hash] document_type, links, tags used to search existing subscriber lists
49
- def create_subscriber_list(attributes)
50
- post_json("#{endpoint}/subscriber-lists", attributes)
24
+ def find_subscriber_list(attributes)
25
+ query_string = nested_query_string(attributes)
26
+ get_json("#{endpoint}/subscriber-lists?" + query_string)
51
27
  end
52
28
 
53
29
  # Post a content change
@@ -64,17 +40,6 @@ class GdsApi::EmailAlertApi < GdsApi::Base
64
40
  post_json("#{endpoint}/messages", message, headers)
65
41
  end
66
42
 
67
- # Unpublishing alert
68
- #
69
- # @param message [Hash] content_id
70
- #
71
- # Used by email-alert-service to send a message to email-alert-api
72
- # when an unpublishing message is put on the Rabbitmq queue by
73
- # publishing-api
74
- def send_unpublish_message(message)
75
- post_json("#{endpoint}/unpublish-messages", message)
76
- end
77
-
78
43
  # Get topic matches
79
44
  #
80
45
  # @param attributes [Hash] tags, links, document_type,
@@ -37,6 +37,10 @@ class GdsApi::Mapit < GdsApi::Base
37
37
  def postcode
38
38
  @response["postcode"]
39
39
  end
40
+
41
+ def country_name
42
+ @response["country_name"]
43
+ end
40
44
  end
41
45
 
42
46
  private
@@ -124,6 +124,14 @@ module GdsApi
124
124
  matching.last
125
125
  end
126
126
 
127
+ def stub_email_alert_api_creates_subscriber_list(attributes)
128
+ stub_request(:post, build_subscriber_lists_url)
129
+ .to_return(
130
+ status: 201,
131
+ body: get_subscriber_list_response(attributes).to_json,
132
+ )
133
+ end
134
+
127
135
  def stub_email_alert_api_has_subscriber_list(attributes)
128
136
  stub_request(:get, build_subscriber_lists_url(attributes))
129
137
  .to_return(
@@ -137,24 +145,11 @@ module GdsApi
137
145
  .to_return(status: 404)
138
146
  end
139
147
 
140
- def stub_email_alert_api_creates_subscriber_list(attributes)
141
- stub_request(:post, build_subscriber_lists_url)
142
- .to_return(
143
- status: 201,
144
- body: get_subscriber_list_response(attributes).to_json,
145
- )
146
- end
147
-
148
148
  def stub_email_alert_api_refuses_to_create_subscriber_list
149
149
  stub_request(:post, build_subscriber_lists_url)
150
150
  .to_return(status: 422)
151
151
  end
152
152
 
153
- def stub_email_alert_api_accepts_unpublishing_message
154
- stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/unpublish-messages")
155
- .to_return(status: 202, body: {}.to_json)
156
- end
157
-
158
153
  def stub_email_alert_api_accepts_content_change
159
154
  stub_request(:post, "#{EMAIL_ALERT_API_ENDPOINT}/content-changes")
160
155
  .to_return(status: 202, body: {}.to_json)
@@ -5,18 +5,20 @@ module GdsApi
5
5
  module LocalLinksManager
6
6
  LOCAL_LINKS_MANAGER_ENDPOINT = Plek.current.find("local-links-manager")
7
7
 
8
- def stub_local_links_manager_has_a_link(authority_slug:, lgsl:, lgil:, url:)
8
+ def stub_local_links_manager_has_a_link(authority_slug:, lgsl:, lgil:, url:, country_name: "England", status: "ok")
9
9
  response = {
10
10
  "local_authority" => {
11
11
  "name" => authority_slug.capitalize,
12
12
  "snac" => "00AG",
13
13
  "tier" => "unitary",
14
14
  "homepage_url" => "http://#{authority_slug}.example.com",
15
+ "country_name" => country_name,
15
16
  },
16
17
  "local_interaction" => {
17
18
  "lgsl_code" => lgsl,
18
19
  "lgil_code" => lgil,
19
20
  "url" => url,
21
+ "status" => status,
20
22
  },
21
23
  }
22
24
 
@@ -25,13 +27,14 @@ module GdsApi
25
27
  .to_return(body: response.to_json, status: 200)
26
28
  end
27
29
 
28
- def stub_local_links_manager_has_no_link(authority_slug:, lgsl:, lgil:)
30
+ def stub_local_links_manager_has_no_link(authority_slug:, lgsl:, lgil:, country_name: "England")
29
31
  response = {
30
32
  "local_authority" => {
31
33
  "name" => authority_slug.capitalize,
32
34
  "snac" => "00AG",
33
35
  "tier" => "unitary",
34
36
  "homepage_url" => "http://#{authority_slug}.example.com",
37
+ "country_name" => country_name,
35
38
  },
36
39
  }
37
40
 
@@ -40,13 +43,14 @@ module GdsApi
40
43
  .to_return(body: response.to_json, status: 200)
41
44
  end
42
45
 
43
- def stub_local_links_manager_has_no_link_and_no_homepage_url(authority_slug:, lgsl:, lgil:)
46
+ def stub_local_links_manager_has_no_link_and_no_homepage_url(authority_slug:, lgsl:, lgil:, country_name: "England")
44
47
  response = {
45
48
  "local_authority" => {
46
49
  "name" => authority_slug.capitalize,
47
50
  "snac" => "00AG",
48
51
  "tier" => "unitary",
49
52
  "homepage_url" => nil,
53
+ "country_name" => country_name,
50
54
  },
51
55
  }
52
56
 
@@ -82,6 +86,7 @@ module GdsApi
82
86
  {
83
87
  "name" => authority_slug.capitalize,
84
88
  "homepage_url" => "http://#{authority_slug}.example.com",
89
+ "country_name" => "England",
85
90
  "tier" => "unitary",
86
91
  },
87
92
  ],
@@ -98,11 +103,13 @@ module GdsApi
98
103
  {
99
104
  "name" => district_slug.capitalize,
100
105
  "homepage_url" => "http://#{district_slug}.example.com",
106
+ "country_name" => "England",
101
107
  "tier" => "district",
102
108
  },
103
109
  {
104
110
  "name" => county_slug.capitalize,
105
111
  "homepage_url" => "http://#{county_slug}.example.com",
112
+ "country_name" => "England",
106
113
  "tier" => "county",
107
114
  },
108
115
  ],
@@ -131,6 +138,7 @@ module GdsApi
131
138
  {
132
139
  "name" => authority_slug.capitalize,
133
140
  "homepage_url" => "",
141
+ "country_name" => "England",
134
142
  "tier" => "unitary",
135
143
  },
136
144
  ],
@@ -43,6 +43,20 @@ module GdsApi
43
43
  .to_return(body: response.to_json, status: 200)
44
44
  end
45
45
 
46
+ def stub_mapit_has_a_postcode_and_country_name(postcode, coords, country_name)
47
+ response = {
48
+ "wgs84_lat" => coords.first,
49
+ "wgs84_lon" => coords.last,
50
+ "postcode" => postcode,
51
+ "country_name" => country_name,
52
+ }
53
+
54
+ stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.tr(" ", "+") + ".json")
55
+ .to_return(body: response.to_json, status: 200)
56
+ stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/partial/" + postcode.split(" ").first + ".json")
57
+ .to_return(body: response.to_json, status: 200)
58
+ end
59
+
46
60
  def stub_mapit_does_not_have_a_postcode(postcode)
47
61
  stub_request(:get, "#{MAPIT_ENDPOINT}/postcode/" + postcode.tr(" ", "+") + ".json")
48
62
  .to_return(body: { "code" => 404, "error" => "No Postcode matches the given query." }.to_json, status: 404)
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = "68.1.0".freeze
2
+ VERSION = "69.3.0".freeze
3
3
  end
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: 68.1.0
4
+ version: 69.3.0
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: 2021-01-05 00:00:00.000000000 Z
11
+ date: 2021-01-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable