class Enlight::Requests::Request

Attributes

id[RW]

Public Class Methods

new(attributes = {}) click to toggle source
# File lib/enlight/requests/request.rb, line 9
def initialize(attributes = {})
  attributes.each {|k,v| send("#{k}=", v) if respond_to?(k)}
end

Public Instance Methods

build_uri() click to toggle source
# File lib/enlight/requests/request.rb, line 23
def build_uri
  query_params = {}
  resource_id = nil

  instance_variables.each do |v|
    var = v.to_s.delete('@')

    if var == 'id'
      resource_id = instance_variable_get(v) if var == 'id'
    else
      query_params[var.camelcase] = instance_variable_get(v)
    end
  end

  uri = "#{base_uri}/#{resource}"
  uri += "/#{resource_id}" if resource_id
  uri += "?#{query_params.to_query}" if query_params.any?

  URI(uri)
end
fetch() click to toggle source
# File lib/enlight/requests/request.rb, line 13
def fetch
  data = JSON.parse(Net::HTTP.get(build_uri))

  "Enlight::Responses::#{resource}".constantize.new(data)
end
resource() click to toggle source
# File lib/enlight/requests/request.rb, line 19
def resource
  self.class.to_s.split("::").last
end

Private Instance Methods

base_uri() click to toggle source
# File lib/enlight/requests/request.rb, line 46
def base_uri
  URI("#{Enlight.configuration.url}/#{Enlight.configuration.integration_key}")
end