Class: Unfuzzle::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/unfuzzle/lib/unfuzzle/request.rb

Overview

Request

A basic wrapper for GET requests to the Unfuddle API

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(resource_path, payload = nil, query = nil) ⇒ Request

Create a new request for the given resource path



28
29
30
31
32
# File 'lib/unfuzzle/lib/unfuzzle/request.rb', line 28

def initialize(resource_path, payload = nil, query = nil)
  @resource_path = resource_path
  @payload       = payload
  @query = query
end

Class Method Details

.get(resource_path, query = nil) ⇒ Object

Retrieve a response from the given resource path



10
11
12
13
# File 'lib/unfuzzle/lib/unfuzzle/request.rb', line 10

def self.get(resource_path, query = nil)
  request = new(resource_path, nil, query)
  request.get
end

.post(resource_path, payload) ⇒ Object

Send a POST request with data and retrieve a Response



16
17
18
19
# File 'lib/unfuzzle/lib/unfuzzle/request.rb', line 16

def self.post(resource_path, payload)
  request = new(resource_path, payload)
  request.post
end

.put(resource_path, payload) ⇒ Object

Send a PUT request with data and retrieve a Response



22
23
24
25
# File 'lib/unfuzzle/lib/unfuzzle/request.rb', line 22

def self.put(resource_path, payload)
  request = new(resource_path, payload)
  request.put
end

Instance Method Details

#clientObject

:nodoc:



40
41
42
43
44
45
46
47
# File 'lib/unfuzzle/lib/unfuzzle/request.rb', line 40

def client # :nodoc:
  http = Net::HTTP.new(endpoint_uri.host, endpoint_uri.port)
  if Unfuzzle.use_ssl
    http.use_ssl = true
    http.verify_mode = OpenSSL::SSL::VERIFY_NONE
  end
  http
end

#endpoint_uriObject

:nodoc:



34
35
36
37
38
# File 'lib/unfuzzle/lib/unfuzzle/request.rb', line 34

def endpoint_uri  # :nodoc:
  url = "https://#{Unfuzzle.subdomain}.unfuddle.com/api/v1#{@resource_path}.xml"
  url += @query if @query
  URI.parse(url)
end

#getObject

Retrieve a response from the current resource path



50
51
52
53
54
# File 'lib/unfuzzle/lib/unfuzzle/request.rb', line 50

def get
  request = Net::HTTP::Get.new(endpoint_uri.request_uri)
  request.basic_auth Unfuzzle.username, Unfuzzle.password
  Response.new(client.request(request))
end

#postObject

Send a POST request to the configured endpoint



57
58
59
60
61
62
63
# File 'lib/unfuzzle/lib/unfuzzle/request.rb', line 57

def post
  request = Net::HTTP::Post.new(endpoint_uri.request_uri)
  request.basic_auth Unfuzzle.username, Unfuzzle.password
  request.content_type = 'application/xml'

  Response.new(client.request(request, @payload))
end

#putObject

Send a PUT request to the configured endpoint



66
67
68
69
70
71
72
# File 'lib/unfuzzle/lib/unfuzzle/request.rb', line 66

def put
  request = Net::HTTP::Put.new(endpoint_uri.request_uri)
  request.basic_auth Unfuzzle.username, Unfuzzle.password
  request.content_type = 'application/xml'
  
  Response.new(client.request(request, @payload))
end