tangled
alpha
login
or
join now
mackuba.eu
/
didkit
1
fork
atom
A library for handling DID identifiers used in Bluesky AT Protocol
1
fork
atom
overview
issues
pulls
pipelines
increased indentation
mackuba.eu
8 months ago
68b526d0
e9508172
+27
-25
1 changed file
expand all
collapse all
unified
split
lib
didkit
requests.rb
+27
-25
lib/didkit/requests.rb
reviewed
···
1
1
-
module DIDKit::Requests
2
2
-
def get_response(url, options = {})
3
3
-
url = URI(url) unless url.is_a?(URI)
1
1
+
module DIDKit
2
2
+
module Requests
3
3
+
def get_response(url, options = {})
4
4
+
url = URI(url) unless url.is_a?(URI)
4
5
5
5
-
timeout = options[:timeout] || 15
6
6
+
timeout = options[:timeout] || 15
6
7
7
7
-
request_options = {
8
8
-
use_ssl: true,
9
9
-
open_timeout: timeout,
10
10
-
read_timeout: timeout
11
11
-
}
8
8
+
request_options = {
9
9
+
use_ssl: true,
10
10
+
open_timeout: timeout,
11
11
+
read_timeout: timeout
12
12
+
}
12
13
13
13
-
redirects = 0
14
14
-
visited_urls = []
15
15
-
max_redirects = options[:max_redirects] || 5
14
14
+
redirects = 0
15
15
+
visited_urls = []
16
16
+
max_redirects = options[:max_redirects] || 5
16
17
17
17
-
loop do
18
18
-
visited_urls << url
18
18
+
loop do
19
19
+
visited_urls << url
19
20
20
20
-
response = Net::HTTP.start(url.host, url.port, request_options) do |http|
21
21
-
request = Net::HTTP::Get.new(url)
22
22
-
http.request(request)
23
23
-
end
21
21
+
response = Net::HTTP.start(url.host, url.port, request_options) do |http|
22
22
+
request = Net::HTTP::Get.new(url)
23
23
+
http.request(request)
24
24
+
end
24
25
25
25
-
if response.is_a?(Net::HTTPRedirection) && redirects < max_redirects && (location = response['Location'])
26
26
-
url = URI(location.include?('://') ? location : (url.origin + location))
26
26
+
if response.is_a?(Net::HTTPRedirection) && redirects < max_redirects && (location = response['Location'])
27
27
+
url = URI(location.include?('://') ? location : (url.origin + location))
27
28
28
28
-
if visited_urls.include?(url)
29
29
-
return response
29
29
+
if visited_urls.include?(url)
30
30
+
return response
31
31
+
else
32
32
+
redirects += 1
33
33
+
end
30
34
else
31
31
-
redirects += 1
35
35
+
return response
32
36
end
33
33
-
else
34
34
-
return response
35
37
end
36
38
end
37
39
end