A library for handling DID identifiers used in Bluesky AT Protocol

set a default timeout for requests to 15s

+9 -7
+1 -1
lib/didkit/did.rb
··· 61 61 url = URI("#{pds_host}/xrpc/com.atproto.sync.getRepoStatus") 62 62 url.query = URI.encode_www_form(:did => @did) 63 63 64 - response = get_response(url, { timeout: 15, max_redirects: 5 }) 64 + response = get_response(url, { max_redirects: 5 }) 65 65 status = response.code.to_i 66 66 is_json = (response['Content-Type'] =~ /^application\/json(;.*)?$/) 67 67
+7 -5
lib/didkit/requests.rb
··· 1 1 module DIDKit::Requests 2 2 def get_response(url, options = {}) 3 3 url = URI(url) unless url.is_a?(URI) 4 - request_options = { use_ssl: true } 5 4 6 - if timeout = options[:timeout] 7 - request_options[:open_timeout] = timeout 8 - request_options[:read_timeout] = timeout 9 - end 5 + timeout = options[:timeout] || 15 6 + 7 + request_options = { 8 + use_ssl: true, 9 + open_timeout: timeout, 10 + read_timeout: timeout 11 + } 10 12 11 13 redirects = 0 12 14 max_redirects = options[:max_redirects] || 0
+1 -1
lib/didkit/resolver.rb
··· 50 50 51 51 def resolve_handle_by_well_known(domain) 52 52 url = "https://#{domain}/.well-known/atproto-did" 53 - response = get_response(url, timeout: 10, max_redirects: MAX_REDIRECTS) 53 + response = get_response(url, max_redirects: MAX_REDIRECTS) 54 54 55 55 if response.is_a?(Net::HTTPSuccess) && (text = response.body) 56 56 return parse_did_from_well_known(text)