gds-api-adapters 0.0.31 → 0.0.32

Sign up to get free protection for your applications and to get access to all the features.
@@ -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