Skip to content

Commit 5596394

Browse files
committed
Merge branch 'ruby_error_display' into feature/ruby-proxy
2 parents 1dbcd53 + e39f96a commit 5596394

File tree

2 files changed

+67
-59
lines changed

2 files changed

+67
-59
lines changed

lib/contentstack/api.rb

Lines changed: 60 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -101,36 +101,38 @@ def self.send_request(path, q=nil)
101101
if !@branch.nil? && !@branch.empty?
102102
params["branch"] = @branch
103103
end
104-
if @proxy_details.empty?
105104

106-
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", params).read)
107-
108-
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].present? && @proxy_details[:password].present?
109-
110-
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}/")
111-
proxy_username = @proxy_details[:username]
112-
proxy_password = @proxy_details[:password]
113-
114-
if !@branch.nil? && !@branch.empty?
115-
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", :proxy_http_basic_authentication => [proxy_uri, proxy_username, proxy_password], "api_key" => @api_key, "access_token"=> @access_token, "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout, "branch" => @branch).read)
116-
else
117-
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", :proxy_http_basic_authentication => [proxy_uri, proxy_username, proxy_password], "api_key" => @api_key, "access_token"=> @access_token, "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout).read)
118-
end
119-
120-
121-
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].empty? && @proxy_details[:password].empty?
122-
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}/")
123-
124-
if !@branch.nil? && !@branch.empty?
125-
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", "proxy" => proxy_uri, "api_key" => @api_key, "access_token"=> @access_token, "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout, "branch" => @branch).read)
126-
else
127-
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", "proxy" => proxy_uri, "api_key" => @api_key, "access_token"=> @access_token, "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout).read)
128-
end
129-
130-
131-
132-
133-
end
105+
begin
106+
if @proxy_details.empty?
107+
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", params).read)
108+
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].present? && @proxy_details[:password].present?
109+
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}/")
110+
proxy_username = @proxy_details[:username]
111+
proxy_password = @proxy_details[:password]
112+
113+
if !@branch.nil? && !@branch.empty?
114+
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", :proxy_http_basic_authentication => [proxy_uri, proxy_username, proxy_password], "api_key" => @api_key, "access_token"=> @access_token, "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout, "branch" => @branch).read)
115+
else
116+
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", :proxy_http_basic_authentication => [proxy_uri, proxy_username, proxy_password], "api_key" => @api_key, "access_token"=> @access_token, "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout).read)
117+
end
118+
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].empty? && @proxy_details[:password].empty?
119+
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}/")
120+
121+
if !@branch.nil? && !@branch.empty?
122+
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", "proxy" => proxy_uri, "api_key" => @api_key, "access_token"=> @access_token, "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout, "branch" => @branch).read)
123+
else
124+
ActiveSupport::JSON.decode(URI.open("#{@host}#{@api_version}#{path}#{query}", "proxy" => proxy_uri, "api_key" => @api_key, "access_token"=> @access_token, "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout).read)
125+
end
126+
end
127+
rescue OpenURI::HTTPError => error
128+
response = error.io
129+
#response.status
130+
# => ["503", "Service Unavailable"]
131+
error_response = JSON.parse(response.string)
132+
error_status = {"status_code" => response.status[0], "status_message" => response.status[1]}
133+
error = error_response.merge(error_status)
134+
raise Contentstack::Error.new(error.to_s)
135+
end
134136
end
135137

136138
def self.send_preview_request(path, q=nil)
@@ -150,38 +152,37 @@ def self.send_preview_request(path, q=nil)
150152
if !@branch.nil? && !@branch.empty?
151153
params["branch"] = @branch
152154
end
153-
154-
if @proxy_details.empty?
155-
156-
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}",params).read)
157-
158-
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].present? && @proxy_details[:password].present?
155+
begin
156+
if @proxy_details.empty?
157+
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}",params).read)
158+
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].present? && @proxy_details[:password].present?
159+
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}/")
160+
proxy_username = @proxy_details[:username]
161+
proxy_password = @proxy_details[:password]
162+
163+
if !@branch.nil? && !@branch.empty?
164+
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}", :proxy_http_basic_authentication => [proxy_uri, proxy_username, proxy_password], "api_key" => @api_key, "authorization" => @live_preview[:management_token], "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout, "branch" => @branch).read)
165+
else
166+
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}", :proxy_http_basic_authentication => [proxy_uri, proxy_username, proxy_password], "api_key" => @api_key, "authorization" => @live_preview[:management_token], "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout).read)
167+
end
168+
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].empty? && @proxy_details[:password].empty?
169+
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}/")
159170

160-
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}/")
161-
proxy_username = @proxy_details[:username]
162-
proxy_password = @proxy_details[:password]
163-
164-
if !@branch.nil? && !@branch.empty?
165-
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}", :proxy_http_basic_authentication => [proxy_uri, proxy_username, proxy_password], "api_key" => @api_key, "authorization" => @live_preview[:management_token], "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout, "branch" => @branch).read)
166-
else
167-
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}", :proxy_http_basic_authentication => [proxy_uri, proxy_username, proxy_password], "api_key" => @api_key, "authorization" => @live_preview[:management_token], "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout).read)
168-
end
169-
170-
171-
172-
173-
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].empty? && @proxy_details[:password].empty?
174-
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}/")
175-
176-
if !@branch.nil? && !@branch.empty?
177-
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}", "proxy" => proxy_uri, "api_key" => @api_key, "authorization" => @live_preview[:management_token], "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout, "branch" => @branch).read)
178-
else
179-
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}", "proxy" => proxy_uri, "api_key" => @api_key, "authorization" => @live_preview[:management_token], "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout).read)
180-
end
181-
182-
183-
171+
if !@branch.nil? && !@branch.empty?
172+
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}", "proxy" => proxy_uri, "api_key" => @api_key, "authorization" => @live_preview[:management_token], "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout, "branch" => @branch).read)
173+
else
174+
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}", "proxy" => proxy_uri, "api_key" => @api_key, "authorization" => @live_preview[:management_token], "user_agent"=> "ruby-sdk/#{Contentstack::VERSION}", "x-user-agent" => "ruby-sdk/#{Contentstack::VERSION}", "read_timeout" => @timeout).read)
175+
end
184176
end
177+
rescue OpenURI::HTTPError => error
178+
response = error.io
179+
#response.status
180+
# => ["503", "Service Unavailable"]
181+
error_response = JSON.parse(response.string)
182+
error_status = {"status_code" => response.status[0], "status_message" => response.status[1]}
183+
error = error_response.merge(error_status)
184+
raise Contentstack::Error.new(error.to_s)
185+
end
185186
end
186187
end
187188
end

lib/contentstack/client.rb

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,19 @@
33
require 'contentstack/asset_collection'
44
require 'contentstack/sync_result'
55
require 'util'
6+
require 'contentstack/error'
67
module Contentstack
78
class Client
89
using Utility
910
attr_reader :region, :host
1011
# Initialize "Contentstack" Client instance
1112
def initialize(api_key, delivery_token, environment, options={})
13+
raise Contentstack::Error.new("Api Key is not valid") if api_key.class != String
14+
raise Contentstack::Error.new("Api Key Field Should not be Empty") if api_key.empty?
15+
raise Contentstack::Error.new("Delivery Token is not valid") if delivery_token.class != String
16+
raise Contentstack::Error.new("Delivery Token Field Should not be Empty") if delivery_token.empty?
17+
raise Contentstack::Error.new("Envirnoment Field is not valid") if environment.class != String
18+
raise Contentstack::Error.new("Envirnoment Field Should not be Empty") if environment.empty?
1219
@region = options[:region].nil? ? Contentstack::Region::US : options[:region]
1320
@host = options[:host].nil? ? get_default_region_hosts(@region) : options[:host]
1421
@live_preview = !options.key?(:live_preview) ? {} : options[:live_preview]

0 commit comments

Comments
 (0)