explore/posts/popular: refactor post previews.

This commit is contained in:
evazion
2020-01-12 22:57:40 -06:00
parent 74ce866890
commit 12a845de92
7 changed files with 76 additions and 182 deletions

View File

@@ -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