class Bob::API
Constants
- BASE_URL
Public Class Methods
build_url(endpoint, params = {})
click to toggle source
# File lib/bob/api/api.rb, line 72 def self.build_url(endpoint, params = {}) url = "#{BASE_URL}/#{Bob.api_version}/#{endpoint}" url += "?#{URI.encode_www_form(params)}" unless params.empty? url end
content_headers()
click to toggle source
# File lib/bob/api/api.rb, line 65 def self.content_headers { Accept: 'application/json', 'Content-Type': 'application/json' } end
create_csv(content)
click to toggle source
# File lib/bob/api/api.rb, line 79 def self.create_csv(content) file_name = SecureRandom.alphanumeric(15) content.gsub!("\r", '').gsub!('', '') splitted = content.split("\n") CSV.open("tmp/#{file_name}.csv", 'wb') do |csv| csv << splitted.shift.split(',') splitted.each do |row| csv << CSV.parse_line(row) end end "tmp/#{file_name}.csv" end
delete(endpoint)
click to toggle source
# File lib/bob/api/api.rb, line 37 def self.delete(endpoint) url = build_url(endpoint) response = RestClient.delete(url) response.code end
get(endpoint, params = {}, csv_response: false)
click to toggle source
# File lib/bob/api/api.rb, line 13 def self.get(endpoint, params = {}, csv_response: false) url = build_url(endpoint, params) response = RestClient.get(url, authorization_header) return create_csv(response.body) if csv_response JSON.parse(response.body) end
post(endpoint, params = {}, use_api_key: false)
click to toggle source
# File lib/bob/api/api.rb, line 21 def self.post(endpoint, params = {}, use_api_key: false) url = build_url(endpoint) response = RestClient.post( url, params.to_json, authorization_header(use_api_key: use_api_key).merge(content_headers) ) response.code end
post_media(endpoint, params = {})
click to toggle source
# File lib/bob/api/api.rb, line 31 def self.post_media(endpoint, params = {}) url = build_url(endpoint) response = RestClient.post(url, params.to_json, authorization_header.merge(content_headers)) response.code end
put(endpoint, params = {}, use_api_key: false)
click to toggle source
# File lib/bob/api/api.rb, line 43 def self.put(endpoint, params = {}, use_api_key: false) url = build_url(endpoint) response = RestClient.put( url, params.to_json, authorization_header(use_api_key: use_api_key).merge(content_headers) ) response.code end