Sha256: 2d00b4d63e254bda8db5b73bdd495df915ad3800ff2345101f39c49f4da57ee6

Contents?: true

Size: 1.31 KB

Versions: 1

Compression:

Stored size: 1.31 KB

Contents

# frozen_string_literal: true

require 'faraday'
require 'json'

module NubankSdk
  module Client
    def self.get_body(response)
      JSON.parse(response.body, symbolize_names: true)
    end

    class HTTP
      def initialize(base_url, adapter = nil)
        @connection = Faraday.new(url: base_url) do |faraday|
          faraday.adapter *adapter if adapter
          faraday.adapter Faraday.default_adapter unless adapter
        end
      end

      def post(path, body)
        @connection.post(path) do |req|
          req.headers['Content-Type'] = 'application/json'
          req.body = body.to_json
        end
      end

      def get(path)
        @connection.get(path)
      end
    end

    class HTTPS
      def initialize(certificate, adapter = nil)
        client_cert = OpenSSL::X509::Certificate.new(certificate.certificate),
        client_key = OpenSSL::PKey::RSA.new(certificate.key)

        @connection = Faraday.new(ssl: { client_cert: client_cert, client_key: client_key}) do |faraday|
          faraday.adapter *adapter if adapter
          faraday.adapter Faraday.default_adapter unless adapter
        end
      end

      def post(url, body)
        @connection.post(url) do |req|
          req.headers['Content-Type'] = 'application/json'
          req.body = body.to_json
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
nubank_sdk-0.4.0 lib/nubank_sdk/client.rb