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

33 lines
925 B
Ruby

module JamRuby
class Feed < ActiveRecord::Base
belongs_to :recording, class_name: "JamRuby::Recording", inverse_of: :feed, foreign_key: 'recording_id'
belongs_to :music_session_history, class_name: "JamRuby::MusicSessionHistory", inverse_of: :feed, foreign_key: 'music_session_id'
def self.index(params = {start:0, limit:20, sort: 'date'})
start = params[:start]
start ||= 0
limit = params[:limit]
limit ||= 20
# validate sort
sort = params[:sort]
sort ||= 'date'
raise "not valid sort #{sort}" unless ['date', 'plays', 'likes'].include?(sort)
query = Feed.includes(:recording).includes(:music_session_history).offset(start).limit(limit)
if sort == 'date'
query = query.order('id DESC')
elsif sort == 'plays'
query = query.
query = query.order('(COALESCE(recording., '')')
end
query
end
end
end