Module: BoxView::Http
- Included in:
- Session
- Defined in:
- lib/box_view/http.rb
Instance Method Summary collapse
- #base_uri(path, params = {}) ⇒ Object
- #convert_params(params) ⇒ Object
- #delete(path, parse = true) ⇒ Object
- #get(path, params = {}, parse = true) ⇒ Object
- #make_api_request(req, uri, parse = true) ⇒ Object
- #make_request(req, uri, parse = true) ⇒ Object
- #parse_response(res, parse = true) ⇒ Object
- #post(path, body = "", parse = true) ⇒ Object
- #put(path, body = "", parse = true) ⇒ Object
Instance Method Details
#base_uri(path, params = {}) ⇒ Object
6 7 8 9 10 11 |
# File 'lib/box_view/http.rb', line 6 def base_uri(path, params = {}) uri = URI.parse("https://view-api.box.com") uri.path = path uri.query = URI.encode_www_form(convert_params(params)) if params.any? uri end |
#convert_params(params) ⇒ Object
64 65 66 67 68 69 70 71 |
# File 'lib/box_view/http.rb', line 64 def convert_params(params) params.each_pair do |key, val| if [Date, Time, DateTime].include?(val.class) params[key] = val.iso8601 end end params end |
#delete(path, parse = true) ⇒ Object
36 37 38 39 40 |
# File 'lib/box_view/http.rb', line 36 def delete(path, parse=true) uri = base_uri("#{api_prefix}/#{path}") req = Net::HTTP::Delete.new(uri.request_uri) make_api_request(req, uri, parse) end |
#get(path, params = {}, parse = true) ⇒ Object
13 14 15 16 17 |
# File 'lib/box_view/http.rb', line 13 def get(path, params={}, parse=true) uri = base_uri("#{api_prefix}/#{path}", params) req = Net::HTTP::Get.new(uri.to_s) make_api_request(req, uri, parse) end |
#make_api_request(req, uri, parse = true) ⇒ Object
42 43 44 45 46 47 |
# File 'lib/box_view/http.rb', line 42 def make_api_request(req, uri, parse=true) puts "BoxView::Http#make_api_request token not availble #{uri}" if self.token.nil? || self.token.empty? return if self.token.nil? || self.token.empty? req.add_field("Authorization", "Token #{self.token}") make_request(req, uri, parse) end |
#make_request(req, uri, parse = true) ⇒ Object
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/box_view/http.rb', line 49 def make_request(req, uri, parse=true) req.add_field("Accept", "text/json") n = Net::HTTP.new(uri.host, uri.port) n.use_ssl = true res = n.start do |http| http.request(req) end puts "BoxView::Http#make_request #{uri} response: #{res.body}#{" Parsing" if parse}" parse_response(res, parse) end |
#parse_response(res, parse = true) ⇒ Object
60 61 62 |
# File 'lib/box_view/http.rb', line 60 def parse_response(res, parse=true) parse ? JSON.parse(res.body) : res.body end |
#post(path, body = "", parse = true) ⇒ Object
20 21 22 23 24 25 26 |
# File 'lib/box_view/http.rb', line 20 def post(path, body="", parse=true) uri = base_uri("#{api_prefix}/#{path}") req = Net::HTTP::Post.new(uri.request_uri) req.body = body req.add_field("Content-Type", "application/json") make_api_request(req, uri, parse) end |
#put(path, body = "", parse = true) ⇒ Object
28 29 30 31 32 33 34 |
# File 'lib/box_view/http.rb', line 28 def put(path, body="", parse=true) uri = base_uri("#{api_prefix}/#{path}") req = Net::HTTP::Put.new(uri.request_uri) req.body = body req.add_field("Content-Type", "application/json") make_api_request(req, uri, parse) end |