docbrown/app/controllers/stories/feeds_controller.rb
Michael Kohl 5c2f27baed
Remove timeframer from app/labor (#11782)
* Move file

* Update usages

* Simplify
2020-12-08 12:52:33 +07:00

56 lines
1.7 KiB
Ruby

module Stories
class FeedsController < ApplicationController
respond_to :json
def show
@stories = assign_feed_stories
end
private
def assign_feed_stories
stories = if params[:timeframe].in?(Timeframe::FILTER_TIMEFRAMES)
timeframe_feed
elsif params[:timeframe] == Timeframe::LATEST_TIMEFRAME
latest_feed
elsif user_signed_in?
signed_in_base_feed
else
signed_out_base_feed
end
ArticleDecorator.decorate_collection(stories)
end
def signed_in_base_feed
if SiteConfig.feed_strategy == "basic"
Articles::Feeds::Basic.new(user: current_user, page: @page, tag: params[:tag]).feed
else
optimized_signed_in_feed
end
end
def signed_out_base_feed
if SiteConfig.feed_strategy == "basic"
Articles::Feeds::Basic.new(user: nil, page: @page, tag: params[:tag]).feed
else
Articles::Feeds::LargeForemExperimental.new(user: current_user, page: @page, tag: params[:tag])
.default_home_feed(user_signed_in: user_signed_in?)
end
end
def timeframe_feed
feed = Articles::Feeds::LargeForemExperimental.new(user: current_user, page: @page, tag: params[:tag])
feed.top_articles_by_timeframe(timeframe: params[:timeframe])
end
def latest_feed
feed = Articles::Feeds::LargeForemExperimental.new(user: current_user, page: @page, tag: params[:tag])
feed.latest_feed
end
def optimized_signed_in_feed
feed = Articles::Feeds::LargeForemExperimental.new(user: current_user, page: @page, tag: params[:tag])
feed.more_comments_minimal_weight_randomized_at_end
end
end
end