gds-api-adapters 28.3.1 → 29.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63cab7dcaea123b42aceb6cc72c842f2e8d3a014
4
- data.tar.gz: 4840e3ba7ba466c9c0bad2a056ccb777a92a93fb
3
+ metadata.gz: 71362128a4913b6fa7588f899cb6ec02ce1b9f8f
4
+ data.tar.gz: a401050ecf364fbc755e53d0abf0757e64ffbed7
5
5
  SHA512:
6
- metadata.gz: 452d8c5f90aeb07acaf8b959581f8123b5d630f70a6a4883efdf1d6ae932a5610573e8f6add649e399a199f7cd24cc7e4841bf3894a99aac955a3582e641fa76
7
- data.tar.gz: f962284419cfa753f5cfeee2c45a1faef51f53126663f8b8beb0976b0c86658baa95e629cd8c58cb885a676d1567438737cae2ebc7e5238f7ea7c87d3dd96163
6
+ metadata.gz: a095ca287ef2049fa280105ffa09f4cd03397261a3c1b8e92e34db4603a00d16952339058fc8d82ef492bf22f3c855dfc170089de18965381e3530f3bb613a3f
7
+ data.tar.gz: 8935835598a80361fbb7392b5f2b57bea283f463920a985e344f8418f846de6544218642216941115d1d61e97943f7b81dbde35c50473e08f75019e77ed32b70
data/lib/gds_api/base.rb CHANGED
@@ -21,6 +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
+ :patch_json, :patch_json!,
24
25
  :delete_json, :delete_json!,
25
26
  :get_raw, :get_raw!,
26
27
  :put_multipart,
@@ -78,7 +78,7 @@ module GdsApi
78
78
  # Each "bang method" tries to make a request, but raises an exception if
79
79
  # the response is not successful. These methods discard the HTTPNotFound
80
80
  # exceptions (and return nil), and pass through all other exceptions.
81
- [:get, :post, :put, :delete].each do |http_method|
81
+ [:get, :post, :put, :patch, :delete].each do |http_method|
82
82
  method_name = "#{http_method}_json"
83
83
  define_method method_name do |url, *args, &block|
84
84
  ignoring_missing do
@@ -99,6 +99,10 @@ module GdsApi
99
99
  do_json_request(:put, url, params, additional_headers)
100
100
  end
101
101
 
102
+ def patch_json!(url, params, additional_headers = {})
103
+ do_json_request(:patch, url, params, additional_headers)
104
+ end
105
+
102
106
  def delete_json!(url, params = nil, additional_headers = {})
103
107
  do_json_request(:delete, url, params, additional_headers)
104
108
  end
@@ -27,7 +27,7 @@ module GdsApi
27
27
  rendering_app: options.fetch(:rendering_app),
28
28
  public_updated_at: time.now.iso8601,
29
29
  })
30
- publishing_api.put_links(options.fetch(:content_id), links: options[:links]) if options[:links]
30
+ publishing_api.patch_links(options.fetch(:content_id), links: options[:links]) if options[:links]
31
31
  publishing_api.publish(options.fetch(:content_id), 'major')
32
32
  put_content_response
33
33
  end
@@ -63,14 +63,14 @@ class GdsApi::PublishingApiV2 < GdsApi::Base
63
63
  get_json(links_url(content_id))
64
64
  end
65
65
 
66
- def put_links(content_id, payload)
66
+ def patch_links(content_id, payload)
67
67
  params = {
68
68
  links: payload.fetch(:links)
69
69
  }
70
70
 
71
71
  params = merge_optional_keys(params, payload, [:previous_version])
72
72
 
73
- put_json!(links_url(content_id), params)
73
+ patch_json!(links_url(content_id), params)
74
74
  end
75
75
 
76
76
  def get_content_items(params)
@@ -26,7 +26,7 @@ module GdsApi
26
26
  stub_publishing_api_put(content_id, body, '/content', response_hash)
27
27
  end
28
28
 
29
- def stub_publishing_api_put_links(content_id, body)
29
+ def stub_publishing_api_patch_links(content_id, body)
30
30
  stub_publishing_api_put(content_id, body, '/links')
31
31
  end
32
32
 
@@ -48,7 +48,7 @@ module GdsApi
48
48
  end
49
49
  stubs = []
50
50
  stubs << stub_publishing_api_put_content(content_id, body.except(:links))
51
- stubs << stub_publishing_api_put_links(content_id, body.slice(:links)) unless body.slice(:links).empty?
51
+ stubs << stub_publishing_api_patch_links(content_id, body.slice(:links)) unless body.slice(:links).empty?
52
52
  stubs << stub_publishing_api_publish(content_id, publish_body)
53
53
  stubs
54
54
  end
@@ -57,7 +57,7 @@ module GdsApi
57
57
  stub_request(:put, %r{\A#{PUBLISHING_API_V2_ENDPOINT}/content/})
58
58
  end
59
59
 
60
- def stub_any_publishing_api_put_links
60
+ def stub_any_publishing_api_patch_links
61
61
  stub_request(:put, %r{\A#{PUBLISHING_API_V2_ENDPOINT}/links/})
62
62
  end
63
63
 
@@ -81,7 +81,7 @@ module GdsApi
81
81
  publish_body[:locale] = body[:locale] if body[:locale]
82
82
  end
83
83
  assert_publishing_api_put_content(content_id, body.except(:links))
84
- assert_publishing_api_put_links(content_id, body.slice(:links)) unless body.slice(:links).empty?
84
+ assert_publishing_api_patch_links(content_id, body.slice(:links)) unless body.slice(:links).empty?
85
85
  assert_publishing_api_publish(content_id, publish_body)
86
86
  end
87
87
 
@@ -95,7 +95,7 @@ module GdsApi
95
95
  assert_publishing_api(:post, url, attributes_or_matcher, times)
96
96
  end
97
97
 
98
- def assert_publishing_api_put_links(content_id, attributes_or_matcher = nil, times = 1)
98
+ def assert_publishing_api_patch_links(content_id, attributes_or_matcher = nil, times = 1)
99
99
  url = PUBLISHING_API_V2_ENDPOINT + "/links/" + content_id
100
100
  assert_publishing_api(:put, url, attributes_or_matcher, times)
101
101
  end
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '28.3.1'
2
+ VERSION = '29.0.0'
3
3
  end
@@ -60,7 +60,7 @@ describe GdsApi::PublishingApi::SpecialRoutePublisher do
60
60
 
61
61
  publisher.publish(special_route.merge(links))
62
62
 
63
- assert_requested(:put, "#{endpoint}/v2/links/#{content_id}", body: links)
63
+ assert_requested(:patch, "#{endpoint}/v2/links/#{content_id}", body: links)
64
64
  end
65
65
 
66
66
  describe 'Timezone handling' do
@@ -615,14 +615,14 @@ describe GdsApi::PublishingApiV2 do
615
615
  end
616
616
  end
617
617
 
618
- describe "#put_links" do
618
+ describe "#patch_links" do
619
619
  describe "when setting links of the same type" do
620
620
  before do
621
621
  publishing_api
622
622
  .given("organisation links exist for content_id #{@content_id}")
623
- .upon_receiving("a put organisation links request")
623
+ .upon_receiving("a patch organisation links request")
624
624
  .with(
625
- method: :put,
625
+ method: :patch,
626
626
  path: "/v2/links/#{@content_id}",
627
627
  body: {
628
628
  links: {
@@ -644,7 +644,7 @@ describe GdsApi::PublishingApiV2 do
644
644
  end
645
645
 
646
646
  it "replaces the links and responds with the new links" do
647
- response = @api_client.put_links(@content_id, links: {
647
+ response = @api_client.patch_links(@content_id, links: {
648
648
  organisations: ["591436ab-c2ae-416f-a3c5-1901d633fbfb"],
649
649
  })
650
650
  assert_equal 200, response.code
@@ -656,9 +656,9 @@ describe GdsApi::PublishingApiV2 do
656
656
  before do
657
657
  publishing_api
658
658
  .given("organisation links exist for content_id #{@content_id}")
659
- .upon_receiving("a put topic links request")
659
+ .upon_receiving("a patch topic links request")
660
660
  .with(
661
- method: :put,
661
+ method: :patch,
662
662
  path: "/v2/links/#{@content_id}",
663
663
  body: {
664
664
  links: {
@@ -681,7 +681,7 @@ describe GdsApi::PublishingApiV2 do
681
681
  end
682
682
 
683
683
  it "adds the new type of links and responds with the whole link set" do
684
- response = @api_client.put_links(@content_id, links: {
684
+ response = @api_client.patch_links(@content_id, links: {
685
685
  topics: ["225df4a8-2945-4e9b-8799-df7424a90b69"],
686
686
  })
687
687
 
@@ -697,9 +697,9 @@ describe GdsApi::PublishingApiV2 do
697
697
  before do
698
698
  publishing_api
699
699
  .given("organisation links exist for content_id #{@content_id}")
700
- .upon_receiving("a put blank organisation links request")
700
+ .upon_receiving("a patch blank organisation links request")
701
701
  .with(
702
- method: :put,
702
+ method: :patch,
703
703
  path: "/v2/links/#{@content_id}",
704
704
  body: {
705
705
  links: {
@@ -719,7 +719,7 @@ describe GdsApi::PublishingApiV2 do
719
719
  end
720
720
 
721
721
  it "responds with the links" do
722
- response = @api_client.put_links(@content_id, links: {
722
+ response = @api_client.patch_links(@content_id, links: {
723
723
  organisations: [],
724
724
  })
725
725
 
@@ -732,9 +732,9 @@ describe GdsApi::PublishingApiV2 do
732
732
  before do
733
733
  publishing_api
734
734
  .given("no links exist for content_id #{@content_id}")
735
- .upon_receiving("a put organisation links request")
735
+ .upon_receiving("a patch organisation links request")
736
736
  .with(
737
- method: :put,
737
+ method: :patch,
738
738
  path: "/v2/links/#{@content_id}",
739
739
  body: {
740
740
  links: {
@@ -756,7 +756,7 @@ describe GdsApi::PublishingApiV2 do
756
756
  end
757
757
 
758
758
  it "responds with the links" do
759
- response = @api_client.put_links(@content_id, links: {
759
+ response = @api_client.patch_links(@content_id, links: {
760
760
  organisations: ["591436ab-c2ae-416f-a3c5-1901d633fbfb"],
761
761
  })
762
762
 
@@ -774,7 +774,7 @@ describe GdsApi::PublishingApiV2 do
774
774
  .given("the linkset for #{@content_id} is at version 3")
775
775
  .upon_receiving("a request to update the linkset at version 3")
776
776
  .with(
777
- method: :put,
777
+ method: :patch,
778
778
  path: "/v2/links/#{@content_id}",
779
779
  body: {
780
780
  links: {
@@ -792,7 +792,7 @@ describe GdsApi::PublishingApiV2 do
792
792
  end
793
793
 
794
794
  it "responds with 200 OK" do
795
- response = @api_client.put_links(@content_id,
795
+ response = @api_client.patch_links(@content_id,
796
796
  links: {
797
797
  organisations: ["591436ab-c2ae-416f-a3c5-1901d633fbfb"],
798
798
  },
@@ -809,7 +809,7 @@ describe GdsApi::PublishingApiV2 do
809
809
  .given("the linkset for #{@content_id} is at version 3")
810
810
  .upon_receiving("a request to update the linkset at version 2")
811
811
  .with(
812
- method: :put,
812
+ method: :patch,
813
813
  path: "/v2/links/#{@content_id}",
814
814
  body: {
815
815
  links: {
@@ -840,7 +840,7 @@ describe GdsApi::PublishingApiV2 do
840
840
 
841
841
  it "responds with 409 Conflict" do
842
842
  error = assert_raises GdsApi::HTTPClientError do
843
- @api_client.put_links(@content_id,
843
+ @api_client.patch_links(@content_id,
844
844
  links: {
845
845
  organisations: ["591436ab-c2ae-416f-a3c5-1901d633fbfb"],
846
846
  },
@@ -1210,8 +1210,8 @@ describe GdsApi::PublishingApiV2 do
1210
1210
  proc { @api_client.put_content(nil, {}) }.must_raise ArgumentError
1211
1211
  end
1212
1212
 
1213
- it "happens on put_links" do
1214
- proc { @api_client.put_links(nil, links: {}) }.must_raise ArgumentError
1213
+ it "happens on patch_links" do
1214
+ proc { @api_client.patch_links(nil, links: {}) }.must_raise ArgumentError
1215
1215
  end
1216
1216
  end
1217
1217
  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: 28.3.1
4
+ version: 29.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Stewart
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-26 00:00:00.000000000 Z
11
+ date: 2016-02-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: plek
@@ -458,51 +458,51 @@ signing_key:
458
458
  specification_version: 4
459
459
  summary: Adapters to work with GDS APIs
460
460
  test_files:
461
- - test/support_api_test.rb
462
- - test/mapit_test.rb
461
+ - test/content_api_test.rb
462
+ - test/json_client_test.rb
463
+ - test/content_store_test.rb
463
464
  - test/publishing_api_test.rb
465
+ - test/business_support_api_test.rb
466
+ - test/middleware/govuk_header_sniffer_test.rb
464
467
  - test/whitehall_admin_api_test.rb
465
- - test/pp_data_in_test.rb
466
- - test/publishing_api/special_route_publisher_test.rb
467
- - test/need_api_test.rb
468
+ - test/list_response_test.rb
469
+ - test/maslow_test.rb
470
+ - test/panopticon_registerer_test.rb
471
+ - test/support_test.rb
472
+ - test/asset_manager_test.rb
473
+ - test/helpers_test.rb
474
+ - test/licence_application_api_test.rb
475
+ - test/test_helper.rb
468
476
  - test/publisher_api_test.rb
477
+ - test/mapit_test.rb
469
478
  - test/rummager_helpers_test.rb
470
- - test/support_test.rb
471
- - test/content_register_test.rb
479
+ - test/publishing_api_v2_test.rb
480
+ - test/support_api_test.rb
481
+ - test/organisations_api_test.rb
482
+ - test/gds_api_base_test.rb
483
+ - test/router_test.rb
484
+ - test/publishing_api/special_route_publisher_test.rb
485
+ - test/external_link_tracker_test.rb
472
486
  - test/fact_cave_test.rb
473
- - test/test_helpers/publishing_api_test.rb
474
- - test/test_helpers/pact_helper.rb
475
- - test/test_helpers/panopticon_test.rb
476
- - test/test_helpers/email_alert_api_test.rb
477
- - test/licence_application_api_test.rb
478
- - test/gov_uk_delivery_test.rb
479
- - test/maslow_test.rb
480
- - test/helpers_test.rb
481
- - test/panopticon_registerer_test.rb
487
+ - test/need_api_test.rb
488
+ - test/content_register_test.rb
482
489
  - test/panopticon_test.rb
483
- - test/middleware/govuk_header_sniffer_test.rb
484
- - test/rummager_test.rb
485
- - test/json_client_test.rb
486
- - test/email_alert_api_test.rb
487
- - test/content_api_test.rb
488
- - test/response_test.rb
489
- - test/organisations_api_test.rb
490
- - test/imminence_api_test.rb
491
- - test/content_store_test.rb
492
- - test/asset_manager_test.rb
490
+ - test/pp_data_in_test.rb
493
491
  - test/fixtures/hello.txt
494
492
  - test/fixtures/new_policies_for_dwp.json
495
- - test/fixtures/world_organisations_australia.json
496
493
  - test/fixtures/no_services_and_info_data_found_fixture.json
497
- - test/fixtures/old_policies_for_dwp.json
498
494
  - test/fixtures/services_and_info_fixture.json
495
+ - test/fixtures/old_policies_for_dwp.json
496
+ - test/fixtures/world_organisations_australia.json
499
497
  - test/fixtures/sub_sector_organisations.json
500
498
  - test/fixtures/finder_api/cma-case-schema.json
501
- - test/router_test.rb
502
- - test/list_response_test.rb
503
- - test/external_link_tracker_test.rb
504
- - test/gds_api_base_test.rb
505
499
  - test/worldwide_api_test.rb
506
- - test/test_helper.rb
507
- - test/publishing_api_v2_test.rb
508
- - test/business_support_api_test.rb
500
+ - test/test_helpers/publishing_api_test.rb
501
+ - test/test_helpers/pact_helper.rb
502
+ - test/test_helpers/panopticon_test.rb
503
+ - test/test_helpers/email_alert_api_test.rb
504
+ - test/gov_uk_delivery_test.rb
505
+ - test/imminence_api_test.rb
506
+ - test/email_alert_api_test.rb
507
+ - test/response_test.rb
508
+ - test/rummager_test.rb