Sha256: 45acf6d105b4329557fa1adb2dae6bb40e19685e5692cddd80aa27146d9d7711

Contents?: true

Size: 1.08 KB

Versions: 4

Compression:

Stored size: 1.08 KB

Contents

require 'json'

module Tumblr
  module Request

    # Perform a get request and return the raw response
    def get_response(path, params = {})
      connection.get do |req|
        req.url path
        req.params = params
      end
    end

    # get a redirect url
    def get_redirect_url(path, params = {})
      response = get_response path, params
      if response.status == 301
        response.headers['Location']
      else
        response.body['meta']
      end
    end

    # Performs a get request
    def get(path, params={})
      respond get_response(path, params)
    end

    # Performs post request
    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

    def respond(response)
      if [201, 200].include?(response.status)
        response.body['response']
      else
        response.body['meta']
      end
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
tumblr_client-0.7.3 lib/tumblr/request.rb
tumblr_client-0.7.2 lib/tumblr/request.rb
tumblr_client-0.7.1 lib/tumblr/request.rb
tumblr_client-0.7.0 lib/tumblr/request.rb