mirror of
https://github.com/wahyd4/libr-2.git
synced 2026-08-09 05:15:53 +10:00
35 lines
982 B
Ruby
35 lines
982 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).uniq
|
|
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
|