Sha256: d276a58c515f8b526ac583abd2d26c4580fef7aa15413fa471ab98f9c74641a6

Contents?: true

Size: 1.41 KB

Versions: 9

Compression:

Stored size: 1.41 KB

Contents

# typed: true
# frozen_string_literal: true

require "http"

module CloudWaba
  class HttpClient
    attr_accessor :base_url
    attr_accessor :auth_token

    def initialize(base_url:, auth_token:)
      @base_url = base_url
      @auth_token = auth_token
    end

    def get(headers: {}, params: {})
      client = http_client.headers(headers)
      client = client.auth("Bearer #{@auth_token}") unless @auth_token.nil?
      response = client.get(@base_url, ssl_context: ssl_ctx, params: params)
    end

    def post(headers: {}, body:)
      client = http_client.headers(headers)
      client = client.auth("Bearer #{@auth_token}") unless @auth_token.nil?
      response = client.post(@base_url, ssl_context: ssl_ctx, json: body)
    end

    def put(headers: {}, body:)
      client = http_client.headers(headers)
      client = client.auth("Bearer #{@auth_token}") unless @auth_token.nil?
      response = client.put(@base_url, ssl_context: ssl_ctx, json: body.to_json)
    end

    def delete(headers:{}, params:{})
      client = http_client.headers(headers)
      client = client.auth("Bearer #{@auth_token}") unless @auth_token.nil?
      response = client.delete(@base_url, ssl_context: ssl_ctx, params: params)
    end

    private

    def http_client
      HTTP.follow(max_hops: 3)
    end

    def ssl_ctx
      ctx = OpenSSL::SSL::SSLContext.new
      ctx.verify_mode = OpenSSL::SSL::VERIFY_NONE

      ctx
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
cloud-waba-ruby-client-0.0.10 lib/cloud_waba/http_client.rb
cloud-waba-ruby-client-0.0.9 lib/cloud_waba/http_client.rb
cloud-waba-ruby-client-0.0.8 lib/cloud_waba/http_client.rb
cloud-waba-ruby-client-0.0.7 lib/cloud_waba/http_client.rb
cloud-waba-ruby-client-0.0.6 lib/cloud_waba/http_client.rb
cloud-waba-ruby-client-0.0.5 lib/cloud_waba/http_client.rb
cloud-waba-ruby-client-0.0.3 lib/cloud_waba/http_client.rb
cloud-waba-ruby-client-0.0.2 lib/cloud_waba/http_client.rb
cloud-waba-ruby-client-0.0.1 lib/cloud_waba/http_client.rb