Sha256: 8b5ef4404050c5cb51c6425307a40c3ac8c0e6af48abf7689c6dc5f995e8c8eb

Contents?: true

Size: 1.48 KB

Versions: 22

Compression:

Stored size: 1.48 KB

Contents

module ForestLiana
  class StripeSourcesGetter < StripeBaseGetter
    attr_accessor :records

    def initialize(params, secret_key, reference)
      @params = params
      Stripe.api_key = ForestLiana.integrations[:stripe][:api_key]
    end

    def count
      @cards.try(:total_count) || 0
    end

    def perform
      params = {
        limit: limit,
        starting_after: starting_after,
        ending_before: ending_before,
        object: @params[:object]
      }
      params['include[]'] = 'total_count'

      resource = collection.find(@params[:id])
      customer = resource[field]

      if customer.blank?
        @records = []
      else
        fetch_bank_accounts(customer, params)
      end
    end

    def fetch_bank_accounts(customer, params)
      begin
        @cards = ::Stripe::Customer.retrieve(customer).sources.list(params)
        if @cards.blank?
          @records = []
          return
        end

        @records = @cards.data.map do |d|
          query = {}
          query[field] = d.customer
          d.customer = collection.find_by(query)

          d
        end
      rescue ::Stripe::InvalidRequestError => error
        FOREST_LOGGER.error "Stripe error: #{error.message}"
        @records = []
      end
    end

    def starting_after
      if pagination? && @params[:starting_after]
        @params[:starting_after]
      end
    end

    def ending_before
      if pagination? && @params[:ending_before]
        @params[:ending_before]
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
forest_liana-5.4.1 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-6.0.0.pre.beta.4 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-6.0.0.pre.beta.3 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.4.0 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-6.0.0.pre.beta.2 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-6.0.0.pre.beta.1 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.3.3 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.3.2 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.3.1 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.3.0 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.2.3 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.2.2 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.2.1 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.2.0 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.1.3 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.1.2 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.1.1 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.1.0 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.0.0 app/services/forest_liana/stripe_sources_getter.rb
forest_liana-5.0.0.pre.beta.0 app/services/forest_liana/stripe_sources_getter.rb