This commit is contained in:
Seth Call 2020-04-21 09:04:30 -05:00
parent 3e74386345
commit 3e34a28588
3 changed files with 13 additions and 12 deletions

View File

@ -35,7 +35,7 @@ module JamRuby
query = Feed.joins("LEFT OUTER JOIN recordings ON recordings.id = feeds.recording_id") query = Feed.joins("LEFT OUTER JOIN recordings ON recordings.id = feeds.recording_id")
.joins("LEFT OUTER JOIN music_sessions ON music_sessions.id = feeds.music_session_id") .joins("LEFT OUTER JOIN music_sessions ON music_sessions.id = feeds.music_session_id")
.limit(limit) .limit(limit)
.where('recordings is NULL OR (recordings.all_discarded = false AND recordings.deleted = false)') # remove any 'all_discarded recordings from the search results' or 'deleted' .where('feeds.recording_id is NULL OR (recordings.all_discarded = false AND recordings.deleted = false)') # remove any 'all_discarded recordings from the search results' or 'deleted'
# handle sort # handle sort
if sort == 'date' if sort == 'date'
@ -65,31 +65,31 @@ module JamRuby
if target_user if target_user
query = query.joins("LEFT OUTER JOIN claimed_recordings ON recordings.id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE AND (claimed_recordings.user_id = '#{target_user}' OR (recordings.band_id IN (SELECT band_id FROM bands_musicians where user_id='#{target_user}')))") query = query.joins("LEFT OUTER JOIN claimed_recordings ON recordings.id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE AND (claimed_recordings.user_id = '#{target_user}' OR (recordings.band_id IN (SELECT band_id FROM bands_musicians where user_id='#{target_user}')))")
query = query.joins("LEFT OUTER JOIN music_sessions_user_history ON music_sessions.id = music_sessions_user_history.music_session_id AND music_sessions_user_history.user_id = '#{target_user}'") query = query.joins("LEFT OUTER JOIN music_sessions_user_history ON music_sessions.id = music_sessions_user_history.music_session_id AND music_sessions_user_history.user_id = '#{target_user}'")
query = query.group("feeds.id, feeds.recording_id, feeds.music_session_id, feeds.created_at, feeds.updated_at, recordings.id, music_sessions.id") query = query.group("feeds.id")
if sort == 'plays' if sort == 'plays'
query = query.group("COALESCE(recordings.play_count, music_sessions.play_count)") query = query.group("COALESCE(recordings.play_count, music_sessions.play_count)")
elsif sort == 'likes' elsif sort == 'likes'
query = query.group("COALESCE(recordings.like_count, music_sessions.like_count)") query = query.group("COALESCE(recordings.like_count, music_sessions.like_count)")
end end
query = query.where('recordings.id is NULL OR claimed_recordings.id IS NOT NULL') query = query.where('feeds.recording_id is NULL OR claimed_recordings.id IS NOT NULL')
query = query.where('music_sessions.id is NULL OR music_sessions_user_history.id IS NOT NULL') query = query.where('feeds.music_session_id is NULL OR music_sessions_user_history.id IS NOT NULL')
elsif target_band elsif target_band
query = query.joins("LEFT OUTER JOIN claimed_recordings ON recordings.id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE AND recordings.band_id = '#{target_band}'") query = query.joins("LEFT OUTER JOIN claimed_recordings ON feeds.recording_id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE AND recordings.band_id = '#{target_band}'")
query = query.where("music_sessions IS NULL OR music_sessions.band_id = '#{target_band}'") query = query.where("feeds.music_session_id IS NULL OR music_sessions.band_id = '#{target_band}'")
query = query.group("feeds.id, feeds.recording_id, feeds.music_session_id, feeds.created_at, feeds.updated_at, recordings.id, music_sessions.id") query = query.group("feeds.id")
if sort == 'plays' if sort == 'plays'
query = query.group("COALESCE(recordings.play_count, music_sessions.play_count)") query = query.group("COALESCE(recordings.play_count, music_sessions.play_count)")
elsif sort == 'likes' elsif sort == 'likes'
query = query.group("COALESCE(recordings.like_count, music_sessions.like_count)") query = query.group("COALESCE(recordings.like_count, music_sessions.like_count)")
end end
query = query.where('recordings.id is NULL OR claimed_recordings.id IS NOT NULL') query = query.where('feeds.recording_id is NULL OR claimed_recordings.id IS NOT NULL')
#query = query.where('music_sessions.id is NULL OR music_sessions_user_history.id IS NOT NULL') #query = query.where('music_sessions.id is NULL OR music_sessions_user_history.id IS NOT NULL')
else else
query = query.joins('LEFT OUTER JOIN claimed_recordings ON recordings.id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE') query = query.joins('LEFT OUTER JOIN claimed_recordings ON feeds.recording_id = claimed_recordings.recording_id AND claimed_recordings.discarded = FALSE')
query = query.joins("LEFT OUTER JOIN music_sessions_user_history ON music_sessions.id = music_sessions_user_history.music_session_id") query = query.joins("LEFT OUTER JOIN music_sessions_user_history ON music_sessions.id = music_sessions_user_history.music_session_id")
query = query.group("feeds.id, feeds.recording_id, feeds.music_session_id, feeds.created_at, feeds.updated_at, recordings.id, music_sessions.id") query = query.group("feeds.id")
if sort == 'plays' if sort == 'plays'
query = query.group("COALESCE(recordings.play_count, music_sessions.play_count)") query = query.group("COALESCE(recordings.play_count, music_sessions.play_count)")
elsif sort == 'likes' elsif sort == 'likes'

View File

@ -13,7 +13,7 @@
var userId = null; var userId = null;
var bandId = null; var bandId = null;
var currentFeedPage = 0; var currentFeedPage = 0;
var feedBatchSize = 10; var feedBatchSize = 100;
var $screen = null; var $screen = null;
var $scroller = null; var $scroller = null;
var $content = null; var $content = null;

View File

@ -17,6 +17,7 @@ else
gem 'jam_ruby', "0.1.#{ENV["BUILD_NUMBER"]}" gem 'jam_ruby', "0.1.#{ENV["BUILD_NUMBER"]}"
ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] ||= "true" ENV['NOKOGIRI_USE_SYSTEM_LIBRARIES'] ||= "true"
end end
gem 'activerecord', '> 4.2' gem 'activerecord', '> 4.2'
gem 'actionpack', '> 4.2' gem 'actionpack', '> 4.2'
gem 'actionmailer', '> 4.2' gem 'actionmailer', '> 4.2'