module Tumblr::Request

Public Instance Methods

get(path, params={}) click to toggle source

Performs a get request

# File lib/tumblr/request.rb, line 25
def get(path, params={})
  respond get_response(path, params)
end
get_redirect_url(path, params = {}) click to toggle source

get a redirect url

# File lib/tumblr/request.rb, line 15
def get_redirect_url(path, params = {})
  response = get_response path, params
  if response.status == 301
    response.headers['Location']
  else
    response.body['meta']
  end
end
get_response(path, params = {}) click to toggle source

Perform a get request and return the raw response

# File lib/tumblr/request.rb, line 7
def get_response(path, params = {})
  connection.get do |req|
    req.url path
    req.params = params
  end
end
post(path, params={}) click to toggle source

Performs post request

# File lib/tumblr/request.rb, line 30
def post(path, params={})
  if Array === params[:tags]
    params[:tags] = params[:tags].join(',')
  end
  response = connection.post do |req|
    req.url path
    req.body = params unless params.empty?
  end
  #Check for errors and encapsulate
  respond(response)
end
respond(response) click to toggle source
# File lib/tumblr/request.rb, line 42
def respond(response)
  if [201, 200].include?(response.status)
    response.body['response']
  else
    # surface the meta alongside response
    res = response.body['meta'] || {}
    res.merge! response.body['response'] if response.body['response'].is_a?(Hash)
    res
  end
end