class Wonde::Endpoints

Top level Endpoints class, most of our classes inherit from this Some methods use this directly

Attributes

endpoint[RW]
token[RW]
uri[RW]
version[RW]

Public Class Methods

new(token, uri=false) click to toggle source
# File lib/endpoints.rb, line 14
def initialize(token, uri=false)
  self.endpoint = @@endpoint
  self.uri = String.new()
  self.version = '0.0.1'
  self.token = token
  self.uri = uri if uri
end

Public Instance Methods

all(includes = Array.new(), parameters = Hash.new()) click to toggle source
# File lib/endpoints.rb, line 131
def all(includes = Array.new(), parameters = Hash.new())
  unless includes.nil? or includes.empty?
    parameters['include'] = includes.join(",")
  end

  unless parameters.nil? or parameters.empty?
    uriparams = Addressable::URI.new
    uriparams.query_values = parameters
    uriparams.query
    uri = self.uri + '?' + uriparams.query
  else
    uri = self.uri
  end
  response = getRequest(uri).body
  puts response if ENV["debug_wonde"]
  object = JSON.parse(response, object_class: OpenStruct)
  puts object if ENV["debug_wonde"]
  ResultIterator.new(object,self.token)
end
delete(body=Hash.new()) click to toggle source
# File lib/endpoints.rb, line 123
def delete(body=Hash.new())
  hash_response = self.deleteRequest(self.uri, body).body
  if hash_response.nil?
    return Hash.new()
  end
  OpenStruct.new hash_response
end
deleteRequest(endpoint, body=Hash.new()) click to toggle source
# File lib/endpoints.rb, line 101
def deleteRequest(endpoint, body=Hash.new())
  puts "self.endpoint: " + self.endpoint if ENV["debug_wonde"]
  puts "endpoint:" + endpoint if ENV["debug_wonde"]
  puts "body:" + body.to_json if ENV["debug_wonde"]
  deleteUrl(self.endpoint + endpoint, body)
end
deleteUrl(url, body=Hash.new()) click to toggle source
# File lib/endpoints.rb, line 108
def deleteUrl(url, body=Hash.new())
  puts body.to_json if ENV["debug_wonde"]
  RestClient::Request.execute(
    method: :delete,
    url: url,
    headers: {
      "Authorization" => "Basic #{self.token}",
      "User-Agent" => "wonde-rb-client-#{self.version}",
      "Accept" => "application/json",
      "Content-Type" => "application/json",
    },
    payload: body.to_json,
  )
end
get(id, includes = Hash.new(), parameters = Hash.new()) click to toggle source

Builds get request and passes it along

@param id [String] @param includes [Hash] @param parameters [Hash] @return [Object]

# File lib/endpoints.rb, line 53
def get(id, includes = Hash.new(), parameters = Hash.new())
  unless includes.nil? or includes.empty?
    parameters['include'] = includes.join(",")
  end
  unless parameters.empty?
    uriparams = Addressable::URI.new
    uriparams.query_values = parameters
    uri = self.uri + id + "?" + uriparams.query
  else
    uri = self.uri + id
  end
  response = getRequest(uri).body["data"]
  puts response if ENV["debug_wonde"]
  object = JSON.parse(response, object_class: OpenStruct)
  puts object if ENV["debug_wonde"]
  object
end
getRequest(endpoint) click to toggle source

Forwards request info, eventually to unirest

@param endpoint [String] @return [Object]

# File lib/endpoints.rb, line 26
def getRequest(endpoint)
  puts "self.endpoint: " + self.endpoint if ENV["debug_wonde"]
  puts "endpoint:" + endpoint if ENV["debug_wonde"]
  getUrl(self.endpoint + endpoint)
end
getUrl(url) click to toggle source

Forwards request info to unirest

@param url [String] @return [Object]

# File lib/endpoints.rb, line 36
def getUrl(url)
  RestClient::Request.execute(
    method: :get,
    url: url,
    headers: {
      "Authorization" => "Bearer #{self.token}",
      "User-Agent" => "wonde-rb-client-#{self.version}"
    }
  )
end
post(body=Hash.new()) click to toggle source
# File lib/endpoints.rb, line 93
def post(body=Hash.new())
  hash_response = JSON.parse(self.postRequest(self.uri, body).body)
  if hash_response.nil?
    return Hash.new()
  end
  OpenStruct.new hash_response
end
postRequest(endpoint, body=Hash.new()) click to toggle source
# File lib/endpoints.rb, line 71
def postRequest(endpoint, body=Hash.new())
  puts "self.endpoint:\n " + self.endpoint if ENV["debug_wonde"]
  puts "endpoint:\n" + endpoint if ENV["debug_wonde"]
  puts "body:\n" + body.to_json if ENV["debug_wonde"]
  postUrl(self.endpoint + endpoint, body)
end
postUrl(url, body=Hash.new()) click to toggle source
# File lib/endpoints.rb, line 78
def postUrl(url, body=Hash.new())
  puts body.to_json if ENV["debug_wonde"]
  RestClient::Request.execute(
    method: :post,
    url: url,
    headers: {
      "Authorization" => "Basic #{self.token}",
      "User-Agent" => "wonde-rb-client-#{self.version}",
      "Accept" => "application/json",
      "Content-Type" => "application/json",
    },
    payload: body.to_json,
  )
end