gds-api-adapters 0.0.31 → 0.0.32

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.
@@ -8,6 +8,7 @@ module GdsApi
8
8
  @owning_app = options[:owning_app]
9
9
  @kind = options[:kind] || 'custom-application'
10
10
  @panopticon = options[:panopticon]
11
+ @platform = options[:platform] || ENV['FACTER_govuk_platform'] || 'development'
11
12
  end
12
13
 
13
14
  def record_to_artefact(record)
@@ -29,7 +30,7 @@ module GdsApi
29
30
  panopticon.create_artefact(artefact)
30
31
  elsif existing.owning_app == artefact[:owning_app]
31
32
  logger.info "Updating #{artefact[:slug]}"
32
- panopticon.update_artefact(artefact)
33
+ panopticon.update_artefact(artefact[:slug], artefact)
33
34
  else
34
35
  raise "Slug #{artefact[:slug]} already registered to application '#{existing.owning_app}'"
35
36
  end
@@ -39,8 +40,7 @@ module GdsApi
39
40
  options = {
40
41
  timeout: 5
41
42
  }
42
- platform = ENV['FACTER_govuk_platform'] || 'development'
43
- @panopticon ||= GdsApi::Panopticon.new(platform, options.merge(panopticon_api_credentials))
43
+ @panopticon ||= GdsApi::Panopticon.new(@platform, options.merge(panopticon_api_credentials))
44
44
  end
45
45
 
46
46
  def panopticon_api_credentials
@@ -23,6 +23,12 @@ module GdsApi
23
23
 
24
24
  return urls.first
25
25
  end
26
+
27
+ def panopticon_has_no_metadata_for(slug)
28
+ url = "#{PANOPTICON_ENDPOINT}/artefacts/#{slug}.json"
29
+ stub_request(:get, url).to_return(:status => 404, :body => "", :headers => {})
30
+ end
31
+
26
32
  end
27
33
  end
28
34
  end
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '0.0.31'
2
+ VERSION = '0.0.32'
3
3
  end
@@ -94,14 +94,32 @@ class PanopticonApiTest < MiniTest::Unit::TestCase
94
94
  api.update_artefact(1, basic_artefact)
95
95
  end
96
96
 
97
- def test_can_register_artefacts_en_masse
98
- panopticon = stub_everything('Panopticon api client')
99
- r = GdsApi::Panopticon::Registerer.new(owning_app: 'my-app', panopticon: panopticon)
100
- record = OpenStruct.new(slug: '/foo', title: 'MyFoo')
101
-
102
- panopticon.stubs(:artefact_for_slug).returns(nil)
103
- panopticon.expects(:create_artefact).with({slug: '/foo', owning_app: 'my-app', kind: 'custom-application', name: 'MyFoo'})
104
-
97
+ def test_can_register_new_artefacts_en_masse
98
+ artefact = {slug: 'foo', owning_app: 'my-app', kind: 'custom-application', name: 'MyFoo'}
99
+ r = GdsApi::Panopticon::Registerer.new(platform: "test", owning_app: 'my-app')
100
+ panopticon_has_no_metadata_for('foo')
101
+
102
+ url = "#{PANOPTICON_ENDPOINT}/artefacts.json"
103
+ stub_request(:post, url)
104
+ .with(body: artefact.to_json)
105
+ .to_return(body: artefact.merge(id: 1).to_json)
106
+
107
+ record = OpenStruct.new(artefact.merge(title: artefact[:name]))
108
+ r.register(record)
109
+ end
110
+
111
+ def test_can_register_existing_artefacts_en_masse
112
+ artefact = {slug: 'foo', owning_app: 'my-app', kind: 'custom-application', name: 'MyFoo'}
113
+ r = GdsApi::Panopticon::Registerer.new(platform: "test", owning_app: 'my-app')
114
+
115
+ panopticon_has_metadata(artefact)
116
+ url = "#{PANOPTICON_ENDPOINT}/artefacts/foo.json"
117
+ stub_request(:put, url)
118
+ .with(body: artefact.to_json)
119
+ .to_return(status: 200, body: '{}')
120
+
121
+ record = OpenStruct.new(artefact.merge(title: artefact[:name]))
105
122
  r.register(record)
106
123
  end
124
+
107
125
  end
metadata CHANGED
@@ -2,7 +2,7 @@
2
2
  name: gds-api-adapters
3
3
  version: !ruby/object:Gem::Version
4
4
  prerelease:
5
- version: 0.0.31
5
+ version: 0.0.32
6
6
  platform: ruby
7
7
  authors:
8
8
  - James Stewart
@@ -14,7 +14,6 @@ date: 2012-01-11 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: plek
17
- prerelease: false
18
17
  requirement: &id001 !ruby/object:Gem::Requirement
19
18
  none: false
20
19
  requirements:
@@ -22,10 +21,10 @@ dependencies:
22
21
  - !ruby/object:Gem::Version
23
22
  version: "0"
24
23
  type: :runtime
24
+ prerelease: false
25
25
  version_requirements: *id001
26
26
  - !ruby/object:Gem::Dependency
27
27
  name: null_logger
28
- prerelease: false
29
28
  requirement: &id002 !ruby/object:Gem::Requirement
30
29
  none: false
31
30
  requirements:
@@ -33,10 +32,10 @@ dependencies:
33
32
  - !ruby/object:Gem::Version
34
33
  version: "0"
35
34
  type: :runtime
35
+ prerelease: false
36
36
  version_requirements: *id002
37
37
  - !ruby/object:Gem::Dependency
38
38
  name: rake
39
- prerelease: false
40
39
  requirement: &id003 !ruby/object:Gem::Requirement
41
40
  none: false
42
41
  requirements:
@@ -44,10 +43,10 @@ dependencies:
44
43
  - !ruby/object:Gem::Version
45
44
  version: 0.9.2.2
46
45
  type: :development
46
+ prerelease: false
47
47
  version_requirements: *id003
48
48
  - !ruby/object:Gem::Dependency
49
49
  name: webmock
50
- prerelease: false
51
50
  requirement: &id004 !ruby/object:Gem::Requirement
52
51
  none: false
53
52
  requirements:
@@ -55,10 +54,10 @@ dependencies:
55
54
  - !ruby/object:Gem::Version
56
55
  version: "1.7"
57
56
  type: :development
57
+ prerelease: false
58
58
  version_requirements: *id004
59
59
  - !ruby/object:Gem::Dependency
60
60
  name: mocha
61
- prerelease: false
62
61
  requirement: &id005 !ruby/object:Gem::Requirement
63
62
  none: false
64
63
  requirements:
@@ -66,10 +65,10 @@ dependencies:
66
65
  - !ruby/object:Gem::Version
67
66
  version: 0.10.0
68
67
  type: :development
68
+ prerelease: false
69
69
  version_requirements: *id005
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: minitest
72
- prerelease: false
73
72
  requirement: &id006 !ruby/object:Gem::Requirement
74
73
  none: false
75
74
  requirements:
@@ -77,10 +76,10 @@ dependencies:
77
76
  - !ruby/object:Gem::Version
78
77
  version: 2.10.0
79
78
  type: :development
79
+ prerelease: false
80
80
  version_requirements: *id006
81
81
  - !ruby/object:Gem::Dependency
82
82
  name: rack
83
- prerelease: false
84
83
  requirement: &id007 !ruby/object:Gem::Requirement
85
84
  none: false
86
85
  requirements:
@@ -88,10 +87,10 @@ dependencies:
88
87
  - !ruby/object:Gem::Version
89
88
  version: "0"
90
89
  type: :development
90
+ prerelease: false
91
91
  version_requirements: *id007
92
92
  - !ruby/object:Gem::Dependency
93
93
  name: simplecov
94
- prerelease: false
95
94
  requirement: &id008 !ruby/object:Gem::Requirement
96
95
  none: false
97
96
  requirements:
@@ -99,10 +98,10 @@ dependencies:
99
98
  - !ruby/object:Gem::Version
100
99
  version: 0.5.4
101
100
  type: :development
101
+ prerelease: false
102
102
  version_requirements: *id008
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: simplecov-rcov
105
- prerelease: false
106
105
  requirement: &id009 !ruby/object:Gem::Requirement
107
106
  none: false
108
107
  requirements:
@@ -110,6 +109,7 @@ dependencies:
110
109
  - !ruby/object:Gem::Version
111
110
  version: "0"
112
111
  type: :development
112
+ prerelease: false
113
113
  version_requirements: *id009
114
114
  description: A set of adapters providing easy access to the GDS gov.uk APIs
115
115
  email:
@@ -161,17 +161,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
161
161
  requirements:
162
162
  - - ">="
163
163
  - !ruby/object:Gem::Version
164
+ hash: 4128390024308242266
165
+ segments:
166
+ - 0
164
167
  version: "0"
165
168
  required_rubygems_version: !ruby/object:Gem::Requirement
166
169
  none: false
167
170
  requirements:
168
171
  - - ">="
169
172
  - !ruby/object:Gem::Version
173
+ hash: 4128390024308242266
174
+ segments:
175
+ - 0
170
176
  version: "0"
171
177
  requirements: []
172
178
 
173
179
  rubyforge_project:
174
- rubygems_version: 1.8.12
180
+ rubygems_version: 1.8.13
175
181
  signing_key:
176
182
  specification_version: 3
177
183
  summary: Adapters to work with GDS APIs