Sha256: 11e7f141a2ce58a1e20f9a1602999d7d27f25b25e30de5678661206143ca0d0b

Contents?: true

Size: 1011 Bytes

Versions: 4

Compression:

Stored size: 1011 Bytes

Contents

module BloomRemitClient
  class Client

    include Virtus.model
    attribute :token, String
    attribute :secret, String
    attribute :agent_id, String
    attribute :url, String

    include ActiveModel::Validations
    validates :token, :secret, :agent_id, :url, presence: true

    def billers
      request = BillersRequest.new(default_opts)
      raw_response = request.()
      BillersResponse.new(raw_response: raw_response)
    end

    def create_sender(opts)
      request = CreateSenderRequest.new(default_opts.merge(sender: opts))
      raw_response = request.()
      CreateSenderResponse.new(raw_response: raw_response)
    end

    def create_payment(opts)
      params = default_opts.
        merge(sender_id: opts.delete(:sender_id)).
        merge(payment: opts)
      request = CreatePaymentRequest.new(params)
      CreatePaymentResponse.new(raw_response: request.())
    end

    private

    def default_opts
      attributes.slice(:token, :secret, :url, :agent_id)
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
bloom_remit_client-0.4.0 lib/bloom_remit_client/client.rb
bloom_remit_client-0.3.1 lib/bloom_remit_client/client.rb
bloom_remit_client-0.3.0 lib/bloom_remit_client/client.rb
bloom_remit_client-0.2.0 lib/bloom_remit_client/client.rb