gds-api-adapters 17.1.0 → 17.2.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -21,7 +21,7 @@ class GdsApi::Base
21
21
  def_delegators :client, :get_json, :get_json!,
22
22
  :post_json, :post_json!,
23
23
  :put_json, :put_json!,
24
- :delete_json!,
24
+ :delete_json, :delete_json!,
25
25
  :get_raw, :get_raw!,
26
26
  :put_multipart,
27
27
  :post_multipart
@@ -7,9 +7,22 @@ class GdsApi::PublishingApi < GdsApi::Base
7
7
  put_json!(content_item_url(base_path), payload)
8
8
  end
9
9
 
10
+ def put_intent(base_path, payload)
11
+ put_json!(intent_url(base_path), payload)
12
+ end
13
+
14
+ def destroy_intent(base_path)
15
+ delete_json(intent_url(base_path))
16
+ end
17
+
18
+
10
19
  private
11
20
 
12
21
  def content_item_url(base_path)
13
22
  "#{endpoint}/content#{base_path}"
14
23
  end
24
+
25
+ def intent_url(base_path)
26
+ "#{endpoint}/publish-intent#{base_path}"
27
+ end
15
28
  end
@@ -0,0 +1,14 @@
1
+ module GdsApi
2
+ module TestHelpers
3
+ module IntentHelpers
4
+
5
+ def intent_for_base_path(base_path)
6
+ {
7
+ "base_path" => base_path,
8
+ "publish_time" => "2014-05-06T12:01:00+00:00",
9
+ }
10
+ end
11
+ end
12
+ end
13
+ end
14
+
@@ -1,11 +1,13 @@
1
1
  require 'gds_api/test_helpers/json_client_helper'
2
2
  require 'gds_api/test_helpers/content_item_helpers'
3
+ require 'gds_api/test_helpers/intent_helpers'
3
4
  require 'json'
4
5
 
5
6
  module GdsApi
6
7
  module TestHelpers
7
8
  module PublishingApi
8
9
  include ContentItemHelpers
10
+ include IntentHelpers
9
11
 
10
12
  PUBLISHING_API_ENDPOINT = Plek.current.find('publishing-api')
11
13
 
@@ -15,12 +17,37 @@ module GdsApi
15
17
  stub_request(:put, url).with(body: body).to_return(status: 201, body: body, headers: {})
16
18
  end
17
19
 
20
+ def stub_publishing_api_put_intent(base_path, body = intent_for_base_path(base_path))
21
+ url = PUBLISHING_API_ENDPOINT + "/publish-intent" + base_path
22
+ body = body.to_json unless body.is_a?(String)
23
+ stub_request(:put, url).with(body: body).to_return(status: 201, body: body, headers: {})
24
+ end
25
+
26
+ def stub_publishing_api_destroy_intent(base_path)
27
+ url = PUBLISHING_API_ENDPOINT + "/publish-intent" + base_path
28
+ response_body = {base_path: base_path}.to_json
29
+ stub_request(:delete, url).to_return(status: 201, body: response_body)
30
+ end
31
+
18
32
  def stub_default_publishing_api_put()
19
33
  stub_request(:put, %r{\A#{PUBLISHING_API_ENDPOINT}/content})
20
34
  end
21
35
 
36
+ def stub_default_publishing_api_put_intent()
37
+ stub_request(:put, %r{\A#{PUBLISHING_API_ENDPOINT}/publish-intent})
38
+ end
39
+
22
40
  def assert_publishing_api_put_item(base_path, attributes = {})
23
41
  url = PUBLISHING_API_ENDPOINT + "/content" + base_path
42
+ assert_publishing_api_put(url, attributes)
43
+ end
44
+
45
+ def assert_publishing_api_put_intent(base_path, attributes = {})
46
+ url = PUBLISHING_API_ENDPOINT + "/publish-intent" + base_path
47
+ assert_publishing_api_put(url, attributes)
48
+ end
49
+
50
+ def assert_publishing_api_put(url, attributes = {})
24
51
  if attributes.empty?
25
52
  assert_requested(:put, url)
26
53
  else
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '17.1.0'
2
+ VERSION = '17.2.0'
3
3
  end
@@ -18,4 +18,20 @@ describe GdsApi::PublishingApi do
18
18
  assert_equal base_path, response["base_path"]
19
19
  end
20
20
  end
21
+
22
+ describe "intent" do
23
+ it "should create the intent" do
24
+ base_path = "/test-intent"
25
+ stub_publishing_api_put_intent(base_path)
26
+ response = @api.put_intent(base_path, intent_for_base_path(base_path))
27
+ assert_equal base_path, response["base_path"]
28
+ end
29
+
30
+ it "should delete an intent" do
31
+ base_path = "/test-intent"
32
+ stub_publishing_api_destroy_intent(base_path)
33
+ response = @api.destroy_intent(base_path)
34
+ assert_equal base_path, response["base_path"]
35
+ end
36
+ end
21
37
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gds-api-adapters
3
3
  version: !ruby/object:Gem::Version
4
- version: 17.1.0
4
+ version: 17.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-12-08 00:00:00.000000000 Z
12
+ date: 2014-12-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: plek
16
- requirement: &7736900 !ruby/object:Gem::Requirement
16
+ requirement: &19119560 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *7736900
24
+ version_requirements: *19119560
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: null_logger
27
- requirement: &7736000 !ruby/object:Gem::Requirement
27
+ requirement: &19117620 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: '0'
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *7736000
35
+ version_requirements: *19117620
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: link_header
38
- requirement: &7734960 !ruby/object:Gem::Requirement
38
+ requirement: &19116720 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *7734960
46
+ version_requirements: *19116720
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: lrucache
49
- requirement: &7733420 !ruby/object:Gem::Requirement
49
+ requirement: &19115240 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ~>
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 0.1.1
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *7733420
57
+ version_requirements: *19115240
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rest-client
60
- requirement: &7763860 !ruby/object:Gem::Requirement
60
+ requirement: &19113900 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ~>
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 1.6.3
66
66
  type: :runtime
67
67
  prerelease: false
68
- version_requirements: *7763860
68
+ version_requirements: *19113900
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: rack-cache
71
- requirement: &7762500 !ruby/object:Gem::Requirement
71
+ requirement: &19144320 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :runtime
78
78
  prerelease: false
79
- version_requirements: *7762500
79
+ version_requirements: *19144320
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: rdoc
82
- requirement: &7760880 !ruby/object:Gem::Requirement
82
+ requirement: &19142860 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - =
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: '3.12'
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *7760880
90
+ version_requirements: *19142860
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: rake
93
- requirement: &7758040 !ruby/object:Gem::Requirement
93
+ requirement: &19140360 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ~>
@@ -98,10 +98,10 @@ dependencies:
98
98
  version: 0.9.2.2
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *7758040
101
+ version_requirements: *19140360
102
102
  - !ruby/object:Gem::Dependency
103
103
  name: webmock
104
- requirement: &7771960 !ruby/object:Gem::Requirement
104
+ requirement: &19138000 !ruby/object:Gem::Requirement
105
105
  none: false
106
106
  requirements:
107
107
  - - ~>
@@ -109,10 +109,10 @@ dependencies:
109
109
  version: '1.19'
110
110
  type: :development
111
111
  prerelease: false
112
- version_requirements: *7771960
112
+ version_requirements: *19138000
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: mocha
115
- requirement: &7765620 !ruby/object:Gem::Requirement
115
+ requirement: &19149700 !ruby/object:Gem::Requirement
116
116
  none: false
117
117
  requirements:
118
118
  - - ~>
@@ -120,10 +120,10 @@ dependencies:
120
120
  version: 0.12.4
121
121
  type: :development
122
122
  prerelease: false
123
- version_requirements: *7765620
123
+ version_requirements: *19149700
124
124
  - !ruby/object:Gem::Dependency
125
125
  name: minitest
126
- requirement: &7792680 !ruby/object:Gem::Requirement
126
+ requirement: &19179160 !ruby/object:Gem::Requirement
127
127
  none: false
128
128
  requirements:
129
129
  - - ~>
@@ -131,10 +131,10 @@ dependencies:
131
131
  version: 3.4.0
132
132
  type: :development
133
133
  prerelease: false
134
- version_requirements: *7792680
134
+ version_requirements: *19179160
135
135
  - !ruby/object:Gem::Dependency
136
136
  name: rack
137
- requirement: &7818980 !ruby/object:Gem::Requirement
137
+ requirement: &19174640 !ruby/object:Gem::Requirement
138
138
  none: false
139
139
  requirements:
140
140
  - - ! '>='
@@ -142,10 +142,10 @@ dependencies:
142
142
  version: '0'
143
143
  type: :development
144
144
  prerelease: false
145
- version_requirements: *7818980
145
+ version_requirements: *19174640
146
146
  - !ruby/object:Gem::Dependency
147
147
  name: rack-test
148
- requirement: &7817220 !ruby/object:Gem::Requirement
148
+ requirement: &19200460 !ruby/object:Gem::Requirement
149
149
  none: false
150
150
  requirements:
151
151
  - - ! '>='
@@ -153,10 +153,10 @@ dependencies:
153
153
  version: '0'
154
154
  type: :development
155
155
  prerelease: false
156
- version_requirements: *7817220
156
+ version_requirements: *19200460
157
157
  - !ruby/object:Gem::Dependency
158
158
  name: simplecov
159
- requirement: &7814580 !ruby/object:Gem::Requirement
159
+ requirement: &19198040 !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements:
162
162
  - - ~>
@@ -164,10 +164,10 @@ dependencies:
164
164
  version: 0.5.4
165
165
  type: :development
166
166
  prerelease: false
167
- version_requirements: *7814580
167
+ version_requirements: *19198040
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: simplecov-rcov
170
- requirement: &7812420 !ruby/object:Gem::Requirement
170
+ requirement: &19194340 !ruby/object:Gem::Requirement
171
171
  none: false
172
172
  requirements:
173
173
  - - ! '>='
@@ -175,10 +175,10 @@ dependencies:
175
175
  version: '0'
176
176
  type: :development
177
177
  prerelease: false
178
- version_requirements: *7812420
178
+ version_requirements: *19194340
179
179
  - !ruby/object:Gem::Dependency
180
180
  name: gem_publisher
181
- requirement: &7832580 !ruby/object:Gem::Requirement
181
+ requirement: &19214500 !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
184
184
  - - ~>
@@ -186,10 +186,10 @@ dependencies:
186
186
  version: 1.1.1
187
187
  type: :development
188
188
  prerelease: false
189
- version_requirements: *7832580
189
+ version_requirements: *19214500
190
190
  - !ruby/object:Gem::Dependency
191
191
  name: timecop
192
- requirement: &7831380 !ruby/object:Gem::Requirement
192
+ requirement: &19212700 !ruby/object:Gem::Requirement
193
193
  none: false
194
194
  requirements:
195
195
  - - ~>
@@ -197,10 +197,10 @@ dependencies:
197
197
  version: 0.5.1
198
198
  type: :development
199
199
  prerelease: false
200
- version_requirements: *7831380
200
+ version_requirements: *19212700
201
201
  - !ruby/object:Gem::Dependency
202
202
  name: pry
203
- requirement: &7829760 !ruby/object:Gem::Requirement
203
+ requirement: &19211220 !ruby/object:Gem::Requirement
204
204
  none: false
205
205
  requirements:
206
206
  - - ! '>='
@@ -208,7 +208,7 @@ dependencies:
208
208
  version: '0'
209
209
  type: :development
210
210
  prerelease: false
211
- version_requirements: *7829760
211
+ version_requirements: *19211220
212
212
  description: A set of adapters providing easy access to the GDS GOV.UK APIs
213
213
  email:
214
214
  - jystewart@gmail.com
@@ -239,6 +239,7 @@ files:
239
239
  - lib/gds_api/test_helpers/whitehall_admin_api.rb
240
240
  - lib/gds_api/test_helpers/need_api.rb
241
241
  - lib/gds_api/test_helpers/finder_api.rb
242
+ - lib/gds_api/test_helpers/intent_helpers.rb
242
243
  - lib/gds_api/test_helpers/content_api/artefact_stub.rb
243
244
  - lib/gds_api/test_helpers/performance_platform/data_in.rb
244
245
  - lib/gds_api/test_helpers/collections_api.rb
@@ -346,7 +347,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
346
347
  version: '0'
347
348
  segments:
348
349
  - 0
349
- hash: 364147934682848358
350
+ hash: 879655839748434107
350
351
  required_rubygems_version: !ruby/object:Gem::Requirement
351
352
  none: false
352
353
  requirements:
@@ -355,7 +356,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
355
356
  version: '0'
356
357
  segments:
357
358
  - 0
358
- hash: 364147934682848358
359
+ hash: 879655839748434107
359
360
  requirements: []
360
361
  rubyforge_project:
361
362
  rubygems_version: 1.8.11