26 lines
573 B
Ruby
26 lines
573 B
Ruby
class PostSearchContext
|
|
attr_reader :params, :post_id
|
|
|
|
def initialize(params)
|
|
@params = params
|
|
raise unless params[:seq].present?
|
|
raise unless params[:id].present?
|
|
|
|
@post_id = find_post_id
|
|
end
|
|
|
|
def find_post_id
|
|
if params[:seq] == "prev"
|
|
post = Post.tag_match(params[:tags]).where("posts.id > ?", params[:id].to_i).reorder("posts.id asc").first
|
|
else
|
|
post = Post.tag_match(params[:tags]).where("posts.id < ?", params[:id].to_i).reorder("posts.id desc").first
|
|
end
|
|
|
|
if post
|
|
post.id
|
|
else
|
|
nil
|
|
end
|
|
end
|
|
end
|