Sha256: 8a0680f696374b4ddffa548e42f2d2113a3f41d58f12173e51dee514b458348e

Contents?: true

Size: 928 Bytes

Versions: 15

Compression:

Stored size: 928 Bytes

Contents

=begin
#SnapTrade

#Connect brokerage accounts to your app for live positions and trading

The version of the OpenAPI document: 1.0.0
Contact: api@snaptrade.com

=end

require 'base64'
require 'openssl'

module SnapTrade
  class ApiClientCustom
    def self.request_hook(request, configuration)
      request.params[:timestamp] = Time.now.to_i
      path = request.path[request.path.index('/api/v1/')..-1]
      query = Faraday::Utils.build_query(request.params)
      sig_object = {
        "content" => request.body.nil? || request.body.empty? ? nil : JSON.parse(request.body),
        "path" => path,
        "query" => query
      }
      sig_content = JSON.generate(sig_object, sort_by: :to_s)
      sig_digest = OpenSSL::HMAC.digest(OpenSSL::Digest::SHA256.new, configuration.consumer_key, sig_content)
      signature = Base64.encode64(sig_digest).strip()
      request.headers[:Signature] = signature
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
snaptrade-1.17.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.16.3 lib/snaptrade/api_client_custom.rb
snaptrade-1.16.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.15.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.14.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.12.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.11.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.10.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.9.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.7.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.6.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.5.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.4.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.3.0 lib/snaptrade/api_client_custom.rb
snaptrade-1.2.0 lib/snaptrade/api_client_custom.rb