Sha256: 36fbc7a595c3bf72d28cddba2f8d43f900ea899c23c00b38384784abfd8b6c32

Contents?: true

Size: 788 Bytes

Versions: 3

Compression:

Stored size: 788 Bytes

Contents

module XEClient
  class ConvertFromRequest < BaseRequest

    DEFAULT_PATH = "/v1/convert_from.json"
    attribute :base_currency, String
    attribute :counter_currencies, Array[String]
    attribute :amount, Float
    attribute :endpoint, String, lazy: true, default: :default_endpoint

    validates(
      :base_currency,
      :counter_currencies,
      :amount,
      presence: true,
    )

    def call
      HTTParty.get(
        endpoint,
        query: {
          from: base_currency,
          to: counter_currencies.join(","),
          amount: amount,
        },
        basic_auth: { username: account_id, password: api_key },
      )
    end

    private

    def default_endpoint
      uri = URI.parse(url)
      uri.path = DEFAULT_PATH
      uri.to_s
    end

  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
xe_client-0.2.1 lib/xe_client/requests/convert_from_request.rb
xe_client-0.2.0 lib/xe_client/requests/convert_from_request.rb
xe_client-0.1.0 lib/xe_client/requests/convert_from_request.rb