explore/posts/popular: refactor post previews.
This commit is contained in:
@@ -4,8 +4,12 @@ module Explore
|
||||
before_action :set_date, only: [:searches, :viewed]
|
||||
|
||||
def popular
|
||||
@post_set = PostSets::Popular.new(params[:date], params[:scale])
|
||||
@posts = @post_set.posts
|
||||
@date = params[:date] ? Date.parse(params[:date]) : Date.today
|
||||
@scale = params[:scale]
|
||||
@scale = "day" unless @scale.in?(["day", "week", "month"])
|
||||
|
||||
limit = params.fetch(:limit, CurrentUser.user.per_page)
|
||||
@posts = popular_posts(@date, @scale).paginate(params[:page], limit: limit)
|
||||
respond_with(@posts)
|
||||
end
|
||||
|
||||
@@ -32,5 +36,16 @@ module Explore
|
||||
def set_date
|
||||
@date = params[:date] ? Date.parse(params[:date]) : Date.today
|
||||
end
|
||||
|
||||
def popular_posts(date, scale)
|
||||
if scale == "day"
|
||||
Post.tag_match("date:#{date} order:score")
|
||||
else
|
||||
min_date = date.send("beginning_of_#{scale}").to_date.to_s
|
||||
max_date = date.send("end_of_#{scale}").to_date.to_s
|
||||
search = "date:#{min_date}..#{max_date} order:score"
|
||||
Post.tag_match(search)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user