gds-api-adapters 26.3.1 → 26.4.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: 28d2b20efe3657e43b513e3c43dc9533a2ef5413
4
- data.tar.gz: 6c031a36be576bf3101d65cf4ed62b3667ebba2f
3
+ metadata.gz: c0855c236df08760a5bb3c690fe3edea108d3448
4
+ data.tar.gz: c5c1ef0acb097c7a29899a8051ba2f7c5f3fab30
5
5
  SHA512:
6
- metadata.gz: dc7a2c55870b748f631a943998af7ea6d588f03ea30a3c29dd575e74b7fc1314b2453cfa9f015bd29294dd7963983a418293b3e296360ee979b2bd7811627619
7
- data.tar.gz: c71c2e06c2f7a6e63242b629f34e96d20f30f65d7cd5af7333898f6f814898bf665a20b1017aab61ab3607ef3f2a24af138a6fcca70e0191a3b0d421287b9074
6
+ metadata.gz: da29b92b57fb706bfc91914383e6720d6d72002a7eea5bb1b10bbbbfe845a26e91cef7a03aabce3b26b6912e5f816cb98c6435297d24575de3d734b3d47370e8
7
+ data.tar.gz: 6aa6907363f65a729e003747033ced7faf5a8c294b1abd9832b273d8f44b8c9852aed0d19d3366bd0fd61da17aab4faeaf4b0e048d8f391e83f53a16f84e6e70
@@ -13,6 +13,12 @@ class GdsApi::ContentStore < GdsApi::Base
13
13
  get_json(content_item_url(base_path))
14
14
  end
15
15
 
16
+ def incoming_links!(base_path)
17
+ get_json!(incoming_links_url(base_path))
18
+ rescue GdsApi::HTTPNotFound => e
19
+ raise ItemNotFound.build_from(e)
20
+ end
21
+
16
22
  def content_item!(base_path)
17
23
  get_json!(content_item_url(base_path))
18
24
  rescue GdsApi::HTTPNotFound => e
@@ -24,4 +30,8 @@ class GdsApi::ContentStore < GdsApi::Base
24
30
  def content_item_url(base_path)
25
31
  "#{endpoint}/content#{base_path}"
26
32
  end
33
+
34
+ def incoming_links_url(base_path)
35
+ "#{endpoint}/incoming-links#{base_path}"
36
+ end
27
37
  end
@@ -34,6 +34,9 @@ module GdsApi
34
34
  def content_store_does_not_have_item(base_path)
35
35
  url = CONTENT_STORE_ENDPOINT + "/content" + base_path
36
36
  stub_request(:get, url).to_return(status: 404, headers: {})
37
+
38
+ url = CONTENT_STORE_ENDPOINT + "/incoming-links" + base_path
39
+ stub_request(:get, url).to_return(status: 404, headers: {})
37
40
  end
38
41
 
39
42
  def content_store_isnt_available
@@ -43,6 +46,13 @@ module GdsApi
43
46
  def content_item_for_base_path(base_path)
44
47
  super.merge({ "base_path" => base_path })
45
48
  end
49
+
50
+ def content_store_has_incoming_links(base_path, links)
51
+ url = CONTENT_STORE_ENDPOINT + "/incoming-links" + base_path
52
+ body = links.to_json
53
+
54
+ stub_request(:get, url).to_return(body: body)
55
+ end
46
56
  end
47
57
  end
48
58
  end
@@ -35,6 +35,10 @@ module GdsApi
35
35
  def stub_pp_isnt_available
36
36
  stub_request(:post, /#{PP_DATA_IN_ENDPOINT}\/.*/).to_return(:status => 503)
37
37
  end
38
+
39
+ def stub_pp_dataset_unavailable
40
+ stub_request(:any, /#{PP_DATA_IN_ENDPOINT}/).to_return(:status => 404)
41
+ end
38
42
  end
39
43
  end
40
44
  end
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '26.3.1'
2
+ VERSION = '26.4.0'
3
3
  end
@@ -10,35 +10,63 @@ describe GdsApi::ContentStore do
10
10
  @api = GdsApi::ContentStore.new(@base_api_url)
11
11
  end
12
12
 
13
- describe "content_item" do
14
- it "should return the item" do
13
+ describe "#content_item" do
14
+ it "returns the item" do
15
15
  base_path = "/test-from-content-store"
16
16
  content_store_has_item(base_path)
17
+
17
18
  response = @api.content_item(base_path)
19
+
18
20
  assert_equal base_path, response["base_path"]
19
21
  end
20
22
 
21
- it "should return nil if the item doesn't exist" do
23
+ it "returns nil if the item doesn't exist" do
22
24
  content_store_does_not_have_item("/non-existent")
25
+
23
26
  assert_nil @api.content_item("/non-existent")
24
27
  end
25
28
  end
26
29
 
27
- describe "content_item!" do
28
- it "should return the item" do
30
+ describe "#content_item!" do
31
+ it "returns the item" do
29
32
  base_path = "/test-from-content-store"
30
33
  content_store_has_item(base_path)
34
+
31
35
  response = @api.content_item!(base_path)
36
+
32
37
  assert_equal base_path, response["base_path"]
33
38
  end
34
39
 
35
- it "should raise if the item doesn't exist" do
40
+ it "raises if the item doesn't exist" do
36
41
  content_store_does_not_have_item("/non-existent")
42
+
37
43
  e = assert_raises GdsApi::ContentStore::ItemNotFound do
38
44
  @api.content_item!("/non-existent")
39
45
  end
46
+
40
47
  assert_equal 404, e.code
41
48
  assert_equal "url: #{@base_api_url}/content/non-existent", e.message.strip
42
49
  end
43
50
  end
51
+
52
+ describe "#incoming_links!" do
53
+ it "returns the item" do
54
+ base_path = "/test-from-content-store"
55
+ content_store_has_incoming_links(base_path, [ { title: "Yolo" }])
56
+
57
+ response = @api.incoming_links!(base_path)
58
+
59
+ assert_equal [ { "title" => "Yolo" } ], response.to_hash
60
+ end
61
+
62
+ it "raises if the item doesn't exist" do
63
+ content_store_does_not_have_item("/non-existent")
64
+
65
+ e = assert_raises GdsApi::ContentStore::ItemNotFound do
66
+ response = @api.incoming_links!("/non-existent")
67
+ end
68
+
69
+ assert_equal 404, e.code
70
+ end
71
+ end
44
72
  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: 26.3.1
4
+ version: 26.4.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: 2015-12-02 00:00:00.000000000 Z
11
+ date: 2015-12-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: plek