Sha256: 31d4e9808a272c66d83eedeb5b2a9f83eff0cd886981bbe7eceec1cb00e5ce10

Contents?: true

Size: 1.41 KB

Versions: 2

Compression:

Stored size: 1.41 KB

Contents

module Spreedly

  module CreationHelper

    def create_card_on(environment, options = {})
      deets = default_card_deets.merge(options)
      environment.add_credit_card(deets).payment_method
    end

    def create_failed_card_on(environment, options = {})
      deets = default_card_deets.merge(number: '4012888888881881').merge(options)
      environment.add_credit_card(deets).payment_method
    end

    def create_sprel_on(environment)
      body = default_sprel_body(environment)
      redirect_html = raw_ssl_request(:post, environment.transparent_redirect_form_action, body, {}).body
      redirect_html.match(/token=(\w+)/)[1]
    end

    private

    def default_card_deets
      {
        email: 'perrin@wot.com', number: '5555555555554444', month: 1, year: 2019,
        last_name: 'Aybara', first_name: 'Perrin', retained: true
      }
    end

    def default_sprel_body(environment)
      {
        environment_key: environment.key,
        redirect_url: "http://example.com/transparent_redirect_complete",
        payment_method_type: "sprel"
      }.map do |key, value|
        "#{key}=#{CGI.escape(value.to_s)}"
      end.compact.join("&")
    end

    def raw_ssl_request(method, endpoint, body, headers, options = {})
      raw_response = Timeout::timeout(60) do
        connection = Spreedly::Connection.new(endpoint)
        connection.request(method, body, headers)
      end

      raw_response
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
spreedly-2.0.18 test/helpers/creation_helper.rb
spreedly-2.0.17 test/helpers/creation_helper.rb