Sha256: 646680acb773c078847fe640bfcb0450097626fae81ad41b0c67df1bf0ae5200

Contents?: true

Size: 1.45 KB

Versions: 4

Compression:

Stored size: 1.45 KB

Contents

module GnipApi
  class Request
    attr_reader :uri, :payload, :headers, :request_method

    class << self
      def new_get uri, headers=nil
        new(:uri => uri, :headers => headers, :request_method => GnipApi::Adapter::GET)
      end
      
      def new_post uri, payload, headers=nil
        new(:uri => uri, :headers => headers, :payload => payload, :request_method => GnipApi::Adapter::POST)
      end
      
      def new_delete uri, payload, headers=nil
        new(:uri => uri, :headers => headers, :payload => payload, :request_method => GnipApi::Adapter::POST)
      end
    end

    def initialize params={}
      @uri = params[:uri]
      @payload = params[:payload]
      @headers = params[:headers]
      @request_method = params[:request_method]
      @adapter = GnipApi::Adapter.new
    end

    def execute!
      log!
      case request_method
      when GnipApi::Adapter::GET
        response = @adapter.get(self)
      when GnipApi::Adapter::POST
        response = @adapter.post(self)
      when GnipApi::Adapter::DELETE
        response = @adapter.delete(self)
      else
        raise 'RequestNotAllowed'
      end
      response.check_for_errors!
      return response.body unless response.body.empty?
      return true
    end

    def log!
      GnipApi.logger.info "Starting #{request_method} request to #{uri}"
      GnipApi.logger.debug "Headers -> #{headers.inspect}"
      GnipApi.logger.debug "Payload -> #{payload.inspect}"
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
gnip_api-1.2.4 lib/gnip_api/request.rb
gnip_api-1.2.3 lib/gnip_api/request.rb
gnip_api-1.2.2 lib/gnip_api/request.rb
gnip_api-1.2.1 lib/gnip_api/request.rb