gds-api-adapters 0.0.7 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/lib/gds_api/base.rb CHANGED
@@ -1,16 +1,16 @@
1
1
  require_relative 'json_utils'
2
2
  require 'cgi'
3
- require 'logger'
3
+ require 'null_logger'
4
4
 
5
5
  class GdsApi::Base
6
6
  include GdsApi::JsonUtils
7
7
 
8
- class <<self
8
+ class << self
9
9
  attr_writer :logger
10
10
  end
11
11
 
12
12
  def self.logger
13
- @logger ||= Logger.new(STDOUT)
13
+ @logger ||= NullLogger.instance
14
14
  end
15
15
 
16
16
  def initialize(platform, endpoint_url=nil)
@@ -14,11 +14,12 @@ module GdsApi::JsonUtils
14
14
  TIMEOUT_IN_SECONDS = 0.5
15
15
 
16
16
  def do_request(url, &block)
17
- loggable = {request_uri: url, start_time: Time.now}
17
+ loggable = {request_uri: url, start_time: Time.now.to_f}
18
18
 
19
19
  url = URI.parse(url)
20
20
  request = url.path
21
21
  request = request + "?" + url.query if url.query
22
+ logger.debug "I will request #{request}"
22
23
 
23
24
  response = Net::HTTP.start(url.host, url.port) do |http|
24
25
  http.read_timeout = TIMEOUT_IN_SECONDS
@@ -26,21 +27,26 @@ module GdsApi::JsonUtils
26
27
  end
27
28
 
28
29
  if response.is_a?(Net::HTTPSuccess)
29
- GdsApi::Base.logger.info loggable.merge(status: 'success', end_time: Time.now).to_json
30
+ logger.info loggable.merge(status: 'success', end_time: Time.now).to_json
30
31
  JSON.parse(response.body)
31
32
  else
32
- loggable.merge!(status: '404', end_time: Time.now)
33
- GdsApi::Base.logger.info loggable.to_json
33
+ loggable.merge!(status: '404', end_time: Time.now.to_f)
34
+ logger.warn loggable.to_json
34
35
  nil
35
36
  end
36
37
  rescue Errno::ECONNREFUSED
37
- GdsApi::Base.logger.info loggable.merge(status: 'refused', end_time: Time.now).to_json
38
+ logger.error loggable.merge(status: 'refused', end_time: Time.now.to_f).to_json
38
39
  raise GdsApi::EndpointNotFound.new("Could not connect to #{url}")
39
40
  rescue Timeout::Error, Errno::ECONNRESET
40
- GdsApi::Base.logger.info loggable.merge(status: 'failed', end_time: Time.now).to_json
41
+ logger.error loggable.merge(status: 'failed', end_time: Time.now.to_f).to_json
41
42
  nil
42
43
  end
43
44
 
45
+ def logger
46
+ GdsApi::Base.logger
47
+ end
48
+ private :logger
49
+
44
50
  def get_json(url)
45
51
  do_request(url) do |http, path|
46
52
  http.get(path, REQUEST_HEADERS)
@@ -0,0 +1,12 @@
1
+ module GdsApi
2
+ module TestHelpers
3
+ module Imminence
4
+ def imminence_has_places(latitude, longitude, details)
5
+ response = JSON.dump(details['details'])
6
+ stub_request(:get, "http://imminence.test.alphagov.co.uk/places/#{details['slug']}.json").
7
+ with(:query => {"lat" => latitude, "lng" => longitude, "limit" => "5"}).
8
+ to_return(:status => 200, :body => response, :headers => {})
9
+ end
10
+ end
11
+ end
12
+ end
@@ -9,6 +9,33 @@ module GdsApi
9
9
  stub_request(:get, uri).to_return(:body => json, :status => 200)
10
10
  return uri
11
11
  end
12
+
13
+ def publication_exists_for_snac(snac, details)
14
+ json = JSON.dump(details)
15
+ uri = "#{PUBLISHER_ENDPOINT}/publications/#{details['slug']}.json"
16
+ stub_request(:get, uri).with(:query => {:snac => snac.to_s}).to_return(:body => json, :status => 200)
17
+ return uri
18
+ end
19
+
20
+ def publication_does_not_exist(details)
21
+ uri = "#{PUBLISHER_ENDPOINT}/publications/#{details['slug']}.json"
22
+ stub_request(:get, uri).to_return(:body => 'Not Found', :status => 404)
23
+ return uri
24
+ end
25
+
26
+ def council_exists_for_slug(input_details, output_details)
27
+ json = JSON.dump(output_details)
28
+ slug = input_details.delete('slug')
29
+ uri = "#{PUBLISHER_ENDPOINT}/local_transactions/#{slug}/verify_snac.json"
30
+ stub_request(:post, uri).with(:body => JSON.dump(input_details),
31
+ :headers => {'Accept'=>'application/json', 'Content-Type'=>'application/json', 'User-Agent'=>'GDS Api Client v. 0.0.7'}).
32
+ to_return(:body => json, :status => 200)
33
+ end
34
+
35
+ def no_council_for_slug(slug)
36
+ uri = "#{PUBLISHER_ENDPOINT}/local_transactions/#{slug}/verify_snac.json"
37
+ stub_request(:post, uri).to_return(:body => "", :status => 404)
38
+ end
12
39
  end
13
40
  end
14
41
  end
@@ -1,3 +1,3 @@
1
1
  module GdsApi
2
- VERSION = '0.0.7'
2
+ VERSION = '0.0.9'
3
3
  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: 0.0.7
4
+ version: 0.0.9
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: 2011-12-12 00:00:00.000000000Z
12
+ date: 2011-12-15 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: plek
16
- requirement: &70266639863640 !ruby/object:Gem::Requirement
16
+ requirement: &70358011132760 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,21 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70266639863640
24
+ version_requirements: *70358011132760
25
+ - !ruby/object:Gem::Dependency
26
+ name: null_logger
27
+ requirement: &70358011115280 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70358011115280
25
36
  - !ruby/object:Gem::Dependency
26
37
  name: rake
27
- requirement: &70266639855540 !ruby/object:Gem::Requirement
38
+ requirement: &70358011102660 !ruby/object:Gem::Requirement
28
39
  none: false
29
40
  requirements:
30
41
  - - ~>
@@ -32,10 +43,10 @@ dependencies:
32
43
  version: 0.9.2.2
33
44
  type: :development
34
45
  prerelease: false
35
- version_requirements: *70266639855540
46
+ version_requirements: *70358011102660
36
47
  - !ruby/object:Gem::Dependency
37
48
  name: webmock
38
- requirement: &70266639853460 !ruby/object:Gem::Requirement
49
+ requirement: &70358011083160 !ruby/object:Gem::Requirement
39
50
  none: false
40
51
  requirements:
41
52
  - - ~>
@@ -43,10 +54,10 @@ dependencies:
43
54
  version: '1.7'
44
55
  type: :development
45
56
  prerelease: false
46
- version_requirements: *70266639853460
57
+ version_requirements: *70358011083160
47
58
  - !ruby/object:Gem::Dependency
48
59
  name: rack
49
- requirement: &70266639852360 !ruby/object:Gem::Requirement
60
+ requirement: &70358011074400 !ruby/object:Gem::Requirement
50
61
  none: false
51
62
  requirements:
52
63
  - - ! '>='
@@ -54,10 +65,10 @@ dependencies:
54
65
  version: '0'
55
66
  type: :development
56
67
  prerelease: false
57
- version_requirements: *70266639852360
68
+ version_requirements: *70358011074400
58
69
  - !ruby/object:Gem::Dependency
59
70
  name: simplecov
60
- requirement: &70266639850240 !ruby/object:Gem::Requirement
71
+ requirement: &70358011068120 !ruby/object:Gem::Requirement
61
72
  none: false
62
73
  requirements:
63
74
  - - =
@@ -65,10 +76,10 @@ dependencies:
65
76
  version: 0.4.2
66
77
  type: :development
67
78
  prerelease: false
68
- version_requirements: *70266639850240
79
+ version_requirements: *70358011068120
69
80
  - !ruby/object:Gem::Dependency
70
81
  name: simplecov-rcov
71
- requirement: &70266639840080 !ruby/object:Gem::Requirement
82
+ requirement: &70358011063780 !ruby/object:Gem::Requirement
72
83
  none: false
73
84
  requirements:
74
85
  - - ! '>='
@@ -76,7 +87,7 @@ dependencies:
76
87
  version: '0'
77
88
  type: :development
78
89
  prerelease: false
79
- version_requirements: *70266639840080
90
+ version_requirements: *70358011063780
80
91
  description: A set of adapters providing easy access to the GDS gov.uk APIs
81
92
  email:
82
93
  - jystewart@gmail.com
@@ -95,6 +106,7 @@ files:
95
106
  - lib/gds_api/part_methods.rb
96
107
  - lib/gds_api/publisher.rb
97
108
  - lib/gds_api/test_helpers/contactotron.rb
109
+ - lib/gds_api/test_helpers/imminence.rb
98
110
  - lib/gds_api/test_helpers/panopticon.rb
99
111
  - lib/gds_api/test_helpers/publisher.rb
100
112
  - lib/gds_api/version.rb