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

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