Class: Transloadit::Request

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

Overview

Wraps requests to the Transloadit API. Ensures all API requests return a parsed Transloadit::Response, and abstracts away finding a lightly-used instance on startup.

Constant Summary collapse

API_ENDPOINT =

The default Transloadit API endpoint.

URI.parse('http://api2.transloadit.com/')
API_HEADERS =

The default headers to send to the API.

{ 'User-Agent' => %{Transloadit Ruby SDK #{Transloadit::VERSION}} }
HMAC_ALGORITHM =

The HMAC algorithm used for calculation request signatures.

OpenSSL::Digest.new('sha1')

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url, secret = nil) ⇒ Request

Prepares a request against an endpoint URL, optionally with an encryption secret. If only a path is passed, the API will automatically determine the best server to use. If a full URL is given, the host provided will be used.


36
37
38
39
# File 'lib/transloadit/request.rb', line 36

def initialize(url, secret = nil)
  self.url    = URI.parse(url.to_s)
  self.secret = secret
end

Instance Attribute Details

#secretString


25
26
27
# File 'lib/transloadit/request.rb', line 25

def secret
  @secret
end

#urlString


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

def url
  @url
end

Instance Method Details

#delete(params = {}) ⇒ Transloadit::Response

Performs an HTTP DELETE to the request's URL. Takes an optional hash of query params.


61
62
63
64
65
# File 'lib/transloadit/request.rb', line 61

def delete(params = {})
  self.request! do
    self.api[url.path + self.to_query(params)].delete(API_HEADERS)
  end
end

#get(params = {}) ⇒ Transloadit::Response

Performs an HTTP GET to the request's URL. Takes an optional hash of query params.


48
49
50
51
52
# File 'lib/transloadit/request.rb', line 48

def get(params = {})
  self.request! do
    self.api[url.path + self.to_query(params)].get(API_HEADERS)
  end
end

#inspectString


83
84
85
# File 'lib/transloadit/request.rb', line 83

def inspect
  self.url.to_s.inspect
end

#post(payload = {}) ⇒ Transloadit::Response

Performs an HTTP POST to the request's URL. Takes an optional hash containing the form-encoded payload.


74
75
76
77
78
# File 'lib/transloadit/request.rb', line 74

def post(payload = {})
  self.request! do
    self.api[url.path].post(self.to_payload(payload), API_HEADERS)
  end
end