Sha256: b1b9005c49088f5a0d954abafe7739c3a2c499617ce1f5626ddf0ac844a9c847

Contents?: true

Size: 1.55 KB

Versions: 12

Compression:

Stored size: 1.55 KB

Contents

require 'faraday'

module Gupshup
  module HTTP
    class Client
      attr_accessor :adapter
      attr_reader :last_response, :last_request
      def initialize
        @adapter = Faraday.default_adapter
      end

      def _request(request)
        @connection = Faraday.new(url: "#{request.host}:#{request.port.to_s}", ssl: { verify: true }) do |f|
          f.request :url_encoded
          f.adapter @adapter
          f.headers = request.headers
        end
        @last_request = request
        @last_response = nil

        response = send(request)
        if response.status == 504
          object = { message: 'Request timeout', code: 504 }.to_json
        elsif response.body && !response.body.empty?
          object = response.body
        elsif response.status == 400
          object = { message: 'Bad request', code: 400 }.to_json
        end

        gupshup_response = Gupshup::Response.new(response.status, object, headers: response.headers)
        @last_response = gupshup_response

        gupshup_response
      end

      def send(request)
        @connection.send(request.method.downcase.to_sym,
                         request.url,
                         request.method == 'GET' ? request.params : request.data)
      rescue Faraday::Error => e
        raise Gupshup::REST::GupshupError, e
      end

      def request(host, port, method, url, data = {}, headers = {}, params = {}, auth = nil, timeout = nil)
        request = Gupshup::Request.new(host, port, method, url, params, data, headers)
        _request(request)

      end
    end
  end
end


Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
gupshup_whatsapp-1.0.7 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-1.0.6 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-1.0.5 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-1.0.4 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-1.0.3 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-1.0.2 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-1.0.1 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-1.0.0 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-0.2.5 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-0.2.3 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-0.2.1 lib/gupshup_whatsapp/http/http.rb
gupshup_whatsapp-0.2.0 lib/gupshup_whatsapp/http/http.rb