Skip to content

Commit cb250aa

Browse files
Added Proxy Feature to Ruby SDK
1 parent 1e344ff commit cb250aa

File tree

1 file changed

+22
-2
lines changed

1 file changed

+22
-2
lines changed

lib/contentstack/api.rb

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
module Contentstack
88
class API
99
using Utility
10-
def self.init_api(api_key, delivery_token, environment, host, branch, live_preview)
10+
def self.init_api(api_key, delivery_token, environment, host, branch, live_preview, proxy)
1111
@host = host
1212
@api_version = '/v3'
1313
@environment = environment
@@ -16,6 +16,7 @@ def self.init_api(api_key, delivery_token, environment, host, branch, live_previ
1616
@branch = branch
1717
@headers = {environment: @environment}
1818
@live_preview = live_preview
19+
@proxy_details = proxy
1920
end
2021

2122
def self.live_preview_query(query= {})
@@ -117,7 +118,26 @@ def self.send_preview_request(path, q=nil)
117118
if !@branch.nil? && !@branch.empty?
118119
params["branch"] = @branch
119120
end
120-
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}",params).read)
121+
122+
if @proxy_details.empty?
123+
124+
ActiveSupport::JSON.decode(URI.open("#{preview_host}#{@api_version}#{path}#{query}",params).read)
125+
126+
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].present? && @proxy_details[:password].present?
127+
128+
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}")
129+
proxy_username = @proxy_details[:username]
130+
proxy_password = @proxy_details[:password]
131+
132+
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)
133+
134+
elsif @proxy_details.present? && @proxy_details[:url].present? && @proxy_details[:port].present? && @proxy_details[:username].empty? && @proxy_details[:password].empty?
135+
proxy_uri = URI.parse("http://#{@proxy_details[:url]}:#{@proxy_details[:port]}")
136+
proxy_auth = {"proxy" => proxy_uri}
137+
params_with_proxy = params.merge(proxy_auth)
138+
ActiveSupport::JSON.decode(open("#{preview_host}#{@api_version}#{path}#{query}", params_with_proxy).read)
139+
140+
end
121141
end
122142
end
123143
end

0 commit comments

Comments
 (0)