Sha256: 956f1dbab4c1394ad4330d931e95793f22f6b50639e9e495c0656e4739e276d5
Contents?: true
Size: 1.56 KB
Versions: 1
Compression:
Stored size: 1.56 KB
Contents
require 'uri' require 'net/http' require 'net/https' Net::HTTP.version_1_2 # to make sure version 1.2 is used module OpenTok class Request def initialize(api_host, token, partner_id = nil, partner_secret = nil) @api_host = api_host @token = token @partner_id = partner_id @partner_secret = partner_secret end def sendRequest(path, params) url = URI.parse(@api_host + path) if params.nil? || params.empty? req = Net::HTTP::Get.new url.path else req = Net::HTTP::Post.new url.path req.set_form_data(params) end req = set_headers(req) http = Net::HTTP.new(url.host, url.port) http.use_ssl = @api_host.start_with?("https") http.verify_mode = OpenSSL::SSL::VERIFY_PEER | OpenSSL::SSL::VERIFY_FAIL_IF_NO_PEER_CERT http.start {|h| h.request(req) } end def fetch(path, params={}) res = sendRequest path, params case res when Net::HTTPSuccess, Net::HTTPRedirection return res.read_body else res.error! end rescue Net::HTTPExceptions => e raise OpenTokException.new "Unable to create fufill request: #{e}" rescue NoMethodError => e raise OpenTokException.new "Unable to create a fufill request at this time: #{e}" end private def set_headers(req) if @token req.add_field 'X-TB-TOKEN-AUTH', @token elsif @partner_id && @partner_secret req.add_field 'X-TB-PARTNER-AUTH', "#{@partner_id}:#{@partner_secret}" end req end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
opentok-0.1.3 | lib/open_tok/request.rb |