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) ⇒ 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
66 67 68 69 70 71 72 73 |
# File 'lib/box_view/http.rb', line 66 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 |
# File 'lib/box_view/http.rb', line 42 def make_api_request(req, uri, parse=true) 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
48 49 50 51 52 53 54 55 56 |
# File 'lib/box_view/http.rb', line 48 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 parse ? parse_response(res) : res.body end |
#parse_response(res) ⇒ Object
58 59 60 61 62 63 64 |
# File 'lib/box_view/http.rb', line 58 def parse_response(res) begin JSON.parse(res.body) rescue JSON::ParserError nil end 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 |