jam-cloud/ruby/lib/jam_ruby/models/payment_history.rb

40 lines
1.1 KiB
Ruby

module JamRuby
class PaymentHistory < ActiveRecord::Base
self.table_name = 'payment_histories'
belongs_to :sale
belongs_to :recurly_transaction_web_hook
belongs_to :charge
def self.index(user, params = {})
limit = params[:per_page]
limit ||= 20
limit = limit.to_i
query = PaymentHistory.limit(limit)
.includes(sale: [:sale_line_items], recurly_transaction_web_hook:[], charge:[])
.where(user_id: user.id)
.where("transaction_type = 'sale' OR transaction_type = 'refund' OR transaction_type = 'void'")
.order('created_at DESC')
current_page = params[:page].nil? ? 1 : params[:page].to_i
next_page = current_page + 1
# will_paginate gem
query = query.paginate(:page => current_page, :per_page => limit)
if query.length == 0 # no more results
{ query: query, next_page: nil}
elsif query.length < limit # no more results
{ query: query, next_page: nil}
else
{ query: query, next_page: next_page }
end
end
end
end