@@ -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
187188end
0 commit comments