concourse.rb 0.3.0.pre.1 → 0.3.0.pre.2

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
  SHA256:
3
- metadata.gz: ebf716759e328b59403cfd2b10d9c6a26c8b7c17ab373b226f6941e712076ddb
4
- data.tar.gz: 7c8366afe14b256a551c8951e0687f3dcf3ec1487f915ef9f56129e99b68589d
3
+ metadata.gz: bc7f6970b4f036df4bd4f7024da302b54e1b9b883e8a364d52c10ecaa6812db9
4
+ data.tar.gz: 7a7b6c2ba4fa72c6a76eeb96bc6cea7437e7a11178c3062da6b89afa61e5aa81
5
5
  SHA512:
6
- metadata.gz: 02d9982cbe438aabb453c4c7979babc5ddb0f958687bd5c0379ef8de6da30d4922c047a11594e79ce00ad047ab982b3b7d50e50a58b4685f7bb21deba4e11b81
7
- data.tar.gz: 418c7575d2816685ee5eca5d70585f44e9a35493d002683d59b3c25798f1c4efde9221014b556dfdc2f52ba860a797400d82bebe8700175e902de44a78151f4b
6
+ metadata.gz: d671bb039c40842413f7601b4216d9bd88d9758885a607d0b1f366f616ac0b9daaf054c862434187d2c7832bba85bdb8a78b15b171f20c06ff08dad9a9d959bb
7
+ data.tar.gz: a6b9d0a6d02c7b0e1d26de960181818b18aa5f39746aa52215bf8bee8d29c0b04f42e14d0e261383ba1fc15b8e46eee3ea4be13e464d0993a33bb076afdb6fb3
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- concourse.rb (0.3.0.pre.1)
4
+ concourse.rb (0.3.0.pre.2)
5
5
  dry-schema (~> 0.5)
6
6
  excon (~> 0.72)
7
7
  semantic (~> 1.5)
@@ -1,5 +1,7 @@
1
1
  require_relative 'concourse/version'
2
2
  require_relative 'concourse/models'
3
+ require_relative 'concourse/errors'
4
+ require_relative 'concourse/http'
3
5
  require_relative 'concourse/client'
4
6
  require_relative 'concourse/urls'
5
7
  require_relative 'concourse/headers'
@@ -0,0 +1,14 @@
1
+ module Concourse
2
+ module Errors
3
+ class ApiError < StandardError
4
+ def initialize(parameters)
5
+ @request = parameters[:request]
6
+ @response = parameters[:response]
7
+
8
+ super("Request to #{@request.url} failed " +
9
+ "with status #{@response.status} " +
10
+ "and body #{@response.body}")
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,40 @@
1
+ module Concourse
2
+ module Http
3
+ class Request
4
+ attr_reader :url, :headers, :body
5
+
6
+ def initialize(url, headers = {}, body = nil)
7
+ @url = url
8
+ @headers = headers
9
+ @body = body
10
+ end
11
+
12
+ def ==(other)
13
+ other.class == self.class && other.state == state
14
+ end
15
+
16
+ def eql?(other)
17
+ self == other
18
+ end
19
+
20
+ def hash
21
+ state.hash
22
+ end
23
+
24
+ protected
25
+
26
+ def state
27
+ [@url, @headers, @body]
28
+ end
29
+
30
+ end
31
+
32
+ def assert_successful(request, response)
33
+ unless response.status < 400
34
+ raise Errors::ApiError.new(
35
+ request: request,
36
+ response: response)
37
+ end
38
+ end
39
+ end
40
+ end
@@ -4,12 +4,15 @@ require 'json'
4
4
 
5
5
  require 'concourse/urls'
6
6
  require 'concourse/headers'
7
+ require 'concourse/http'
7
8
 
8
9
  module Concourse
9
10
  module SubClients
10
11
  class SkymarshalClient
11
12
  VERSION_6_1 = Semantic::Version.new('6.1.0')
12
13
 
14
+ include Concourse::Http
15
+
13
16
  def initialize(options)
14
17
  @url = options[:url]
15
18
  @version = Semantic::Version.new(options[:version])
@@ -20,8 +23,10 @@ module Concourse
20
23
  headers = create_token_headers
21
24
  body = create_token_body(parameters)
22
25
 
26
+ token_request = Http::Request.new(url, headers, body)
23
27
  token_response = Excon.post(url, headers: headers, body: body)
24
28
 
29
+ assert_successful(token_request, token_response)
25
30
  token(token_response)
26
31
  end
27
32
 
@@ -1,3 +1,3 @@
1
1
  module Concourse
2
- VERSION = '0.3.0.pre.1'
2
+ VERSION = '0.3.0.pre.2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: concourse.rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0.pre.1
4
+ version: 0.3.0.pre.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Toby Clemson
@@ -224,7 +224,9 @@ files:
224
224
  - concourse.rb.gemspec
225
225
  - lib/concourse.rb
226
226
  - lib/concourse/client.rb
227
+ - lib/concourse/errors.rb
227
228
  - lib/concourse/headers.rb
229
+ - lib/concourse/http.rb
228
230
  - lib/concourse/models.rb
229
231
  - lib/concourse/models/token.rb
230
232
  - lib/concourse/sub_clients.rb