Skip to content

Commit e5ca829

Browse files
committed
Merge pull request #3 from cbdr/exception
Raises Cortex::Exceptions::ConnectionFailed
2 parents 454f4db + 01af68f commit e5ca829

File tree

6 files changed

+26
-55
lines changed

6 files changed

+26
-55
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
.bundle/
22
.idea/
33
.ruby-version
4+
Gemfile.lock

Gemfile.lock

Lines changed: 0 additions & 52 deletions
This file was deleted.

cortex-client.gemspec

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
66
s.version = Cortex::VERSION
77
s.summary = 'Cortex API Client'
88
s.homepage = 'https://github.com/cb-talent-development/cortex-client'
9-
s.authors = ['Bennett Goble']
9+
s.authors = ['Bennett Goble', 'Colin Ewen']
1010
s.license = 'MIT'
1111

1212
s.files = `git ls-files`.split($/).reject { |f| f == '.gitignore' }
@@ -20,4 +20,5 @@ Gem::Specification.new do |s|
2020
s.add_dependency 'faraday', '~> 0.9'
2121
s.add_dependency 'faraday_middleware', '~> 0.9.0'
2222
s.add_dependency 'oauth2', '~>0.9'
23+
s.add_dependency 'cortex-exceptions', '~> 0.0.4'
2324
end

lib/cortex/client.rb

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
require 'cortex/users'
66
require 'cortex/result'
77
require 'oauth2'
8+
require 'cortex/exceptions'
89

910
module Cortex
1011
class Client
@@ -30,8 +31,12 @@ def initialize(hasharg)
3031
end
3132

3233
def get_cc_token
33-
client = OAuth2::Client.new(@key, @secret, site: @base_url)
34-
client.client_credentials.get_token
34+
begin
35+
client = OAuth2::Client.new(@key, @secret, site: @base_url)
36+
client.client_credentials.get_token
37+
rescue Faraday::ConnectionFailed
38+
raise Cortex::Exceptions::ConnectionFailed.new(base_url: @base_url)
39+
end
3540
end
3641
end
3742
end

lib/cortex/connection.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
require 'faraday'
22
require 'faraday_middleware'
3+
require 'cortex/faraday_middleware'
34

45
module Cortex
56
module Connection
@@ -16,6 +17,7 @@ def connection
1617
end
1718

1819
Faraday.new options do |conn|
20+
conn.use Cortex::FaradayMiddleware
1921
conn.request :oauth2, access_token.is_a?(OAuth2::AccessToken) ? access_token.token : access_token
2022
conn.request :json
2123
conn.response :json, :content_type => /\bjson$/

lib/cortex/faraday_middleware.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
require 'faraday'
2+
require 'faraday_middleware'
3+
4+
module Cortex
5+
class FaradayMiddleware < Faraday::Middleware
6+
def call(env)
7+
begin
8+
@app.call(env)
9+
rescue Faraday::ConnectionFailed
10+
raise Cortex::Exceptions::ConnectionFailed.new(base_url: env[:url])
11+
end
12+
end
13+
end
14+
end

0 commit comments

Comments
 (0)