Files
libr-2/app/controllers/api/v1/timeline_controller.rb
T
2015-12-03 00:13:42 +08:00

35 lines
977 B
Ruby

class Api::V1::TimelineController < Api::V1::ApplicationController
skip_before_action :authenticate_user_from_token
before_action :fetch_current_user, only: [:index]
def latest
render json: Post.order(created_at: :desc).page(params[:page]), each_serializer: EachPostSerializer
end
def hottest
render json: Post.order(viewed_times: :desc).page(params[:page]), each_serializer: EachPostSerializer
end
def index
if @current_user
stars_ids = @current_user.stars.ids
user_ids = stars_ids + [@current_user.id]
posts_ids = TimelineSource.where(user_id: user_ids).order(created_at: :desc).page(params[:page]).pluck(:post_id)
render json: Post.find(posts_ids).index_by(&:id).slice(*posts_ids).values, each_serializer: EachPostSerializer
else
return most_liked
end
end
private
def most_liked
render json: Post.order(likes_count: :desc).page(params[:page]), each_serializer: EachPostSerializer
end
end